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/>"; ?>3. Final ではメンバー変数 (プロパティ) を変更できません。 3. const: 1. 属性を変更したくない場合は、const を使用して定数にすることを検討できます (たとえば、pi は改ざんできません)。 2. 基本構文: const constant name = assignInitial value;初期値を割り当てないと、後で改ざんできなくなります。価値がある。 3. 修飾子は定数に書き込むことはできません。デフォルトでは public ですが、書き出すことはできません。 4. 定数名は通常、すべて大文字で付けられます。 5. 呼び出し構文: クラス内で使用: self::定数名またはクラス名::定数名;外部使用クラスの: インターフェイス名::定数;推奨される学習: 「
PHP ビデオ チュートリアル 」
以上がクラスの継承とphpでのインターフェースの実装の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。