php
クラスでは 多重継承
は許可されていませんが、interface
では 多重継承
が可能であり、第二に、インターフェイスを使用するとカプセル化
特定の実装は、特定の実装の詳細を外部に公開しません。公開するのは インターフェイス
だけであり、ユーザーは インターフェイス
を介してのみアクセスできます。ある程度の安心感があります。
1. 定義 : interface
キーワードを使用して定義されたインターフェイスは、クラスに似ており、特に、いくつかの共通のメソッドによって実装される必要があるメソッドを標準化するために使用されます。クラス。
interface People{}
2. インターフェイスの実装 : インターフェイスは、クラスが達成する必要があることを標準化するために使用されるため、インターフェイスはクラス implements
によってのみ実装できます。 (インスタンス化は許可されていません)
class Man implements People{}
3 .Interface members: パブリック抽象メソッド
と インターフェース定数
interface Animal{ const NAME = '人';//只允许有接口常量 public function eat();//接口方法必须为公有抽象方法 }
4. インターフェイスの実装クラスは、すべての abstract メソッド
, を実装する必要があります。そうでない場合、実装クラスは abstract class# です。 ##,
インターフェイス定数は実装クラスで直接アクセスできます
interface Animal{ const NAME = '人'; public function eat(); } //实现接口 class Man implements Animal{ //必须实现接口所有抽象方法 public function eat(){ echo self::NAME; //可以访问接口常量 } } //抽象类实现接口 abstract class Ladyboy implements Animal{} //正常实现
5. インターフェイスを実装する クラス メンバー,
are not インターフェイス内の定数を書き換えることはできますが、インターフェイス メソッドの制御権限を増やすことはできません
interface Animal{ const NAME = '人'; public function eat(); } class Woman implements Animal{ //重写接口常量 const NAME = '女人'; //错误:不允许重写接口常量 //强化接口方法控制 private function eat(){} //错误:接口方法不允许使用其他访问修饰限定符,必须使用public }
:extends, 以上がMaverick アウトサイダー - PHP のインターフェースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。 そして、インターフェイスは複数のインターフェイスから継承できます
interface Plant{
public function lightning();
}
interface Animal{
public function eat();
}
//单继承
interface Man extends Animal{}
//多继承
interface Apple extends Plant,Animal{}