ホームページ  >  記事  >  php教程  >  PHPの抽象クラスが抽象クラスを継承する場合の注意点

PHPの抽象クラスが抽象クラスを継承する場合の注意点

高洛峰
高洛峰オリジナル
2016-11-19 11:49:401433ブラウズ

抽象クラスが別の抽象クラスを継承する場合、抽象親クラスの抽象メソッドを抽象クラスでオーバーライドすることはできません。このような使用法は、抽象クラスの拡張として理解できます。

次の例は、抽象クラスが別の抽象クラスを継承するときに、抽象メソッドをオーバーライドする必要がないことを示しています。

<?
abstract class User 
{
    protected $sal = 0;  
  
    abstract function getSal();
    abstract function setSal($sal);  
}
abstract class VipUser extends User {
     
}
?>

抽象クラスが継承された後は、その抽象メソッドをオーバーライドすることはできません。上書きが発生した場合、システムはエラーを報告します。

<?
abstract class User 
{
    protected  $sal = 0;  
  
    abstract function getSal();
    abstract function setSal($sal);
}
abstract class VipUser extends User 
{
    abstract function setSal();
}
?>

プログラムの実行結果:

Fatal error: Can&#39;t inherit abstract function User::setSal() (previously declared abstract in VipUser) in E:\PH

結論: 抽象クラスは、抽象クラスを拡張する目的で抽象クラスを継承します。

<?
abstract class User 
{
    protected $sal = 0;  
  
    abstract function getSal();
    abstract function setSal($sal);
}
abstract class VipUser extends User 
{
    protected $commision = 0;
    static abstract function getCommision();
    abstract function setCommision();   
}
?>

上記のコードは親クラスのメソッドを拡張します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。