PHP における継承されたクラスと実装されたインターフェイスの違い: 1. PHP の継承は単一継承に属し、統一性が保証されますが柔軟性が十分ではありませんが、インターフェイスの実装は単一継承を補足するものです; 2. インターフェイスの実装階層関係を破壊することなく、特定のクラスの機能を拡張します。
このチュートリアルの動作環境: Windows 10 システム、PHP バージョン 7.1、DELL G3 コンピューター
1. 継承とインターフェース実装の比較:
(1) PHP の継承は単一継承に属し、統一性は保証されますが、柔軟性が十分ではありません。インターフェイスの実装は単一継承の補足です。
(2) インターフェイスの実装は、クラスの階層関係を破壊することなく、特定のクラスの機能を拡張できます。
<?php class Monkey { public $age; public $name; public function climbing() { echo "猴子会爬树<br/>"; } } interface iBirdable { public function fly(); } interface iFishable { public function swimming(); } class LittleMonkey extends Monkey implements iBirdable,iFishable { public function fly() { echo "猴子还会飞<br/>"; } public function swimming() { echo "猴子也会游泳<br/>"; } } $littleMonkey = new LittleMonkey(); $littleMonkey -> climbing(); $littleMonkey -> fly(); $littleMonkey -> swimming(); ?>
2. 最終キーワード:
1. クラスが (セキュリティの観点から) 他のクラスに継承されたくない場合は、final;
# で変更できます。 ##2 . メソッドがサブクラスによってオーバーライドされないようにしたい場合 (メソッドがサブクラス メソッドによってオーバーロードされたくない場合)、最終変更を使用することもできます。<?php class A{ final public function getRate($salary){ return $salary*0.08; } } class B extends A{ //不能去覆盖父类的getRate方法. /*public function getRate($sal){ return $sal*0.01; }*/ } $b=new B(); echo $b->getRate(100)."<br/>"; ?>
PHP ビデオ チュートリアル 」
以上がクラスの継承とphpでのインターフェースの実装の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。