ホームページ  >  記事  >  バックエンド開発  >  PHPの抽象クラスが抽象クラスを継承する際の注意点、オブジェクト指向の学習

PHPの抽象クラスが抽象クラスを継承する際の注意点、オブジェクト指向の学習

PHP中文网
PHP中文网オリジナル
2017-02-10 14:24:021432ブラウズ

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

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

<?
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:\PHPProjects\test.php on line 14


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

<?
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 までご連絡ください。