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

PHP中文网
リリース: 2023-03-05 16:52:01
オリジナル
1402 人が閲覧しました

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

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

<?
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();   
}
?>
ログイン後にコピー

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


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!