PHP クラスは単一継承です。つまり、クラスが複数のクラスの機能を必要とする場合、PHP はクラス インターフェイス テクノロジを導入します。以下の記事では、主に PHP のインターフェースと実装に関する関連情報を紹介します。必要な方は一緒に参照してください。
PHPインターフェース
PHPクラスは単一継承です。つまり、クラスが複数のクラスの機能を必要とする場合、PHPはクラスインターフェーステクノロジーを導入します。 。
抽象クラス内のすべてのメソッドが抽象メソッドであり、変数が宣言されておらず、インターフェース内のすべてのメンバーがパブリック権限を持っている場合、この特別な抽象クラスはインターフェースと呼ばれます。
インターフェースはキーワードinterfaceを使用して定義され、キーワードimplementsはインターフェース内のメソッドを実装するために使用されます。これは完全に実装する必要があります。
クラスへのインターフェースの適用
1. キーワード: インターフェース
2. キーワード: 実装
1. インターフェースの導入と作成
インターフェース: メンバー属性すべては特別な抽象です抽象クラスまたは定数クラス。
ルール:
1. クラス内のすべてのメソッドは抽象メソッドです。
2. 抽象メソッドの場合は抽象を追加する必要はありません。
3. インターフェースの抽象メソッド属性は public です。
4. メンバー属性は定数である必要があります。
フォーマットコードは次のとおりです:
interface demo { const NAME = "常量对象属性"; function fun1(); function fun2(); //抽象方法。 }
2. インターフェースのアプリケーションと仕様
インターフェース参照はクラス継承キーワードextendsとは異なりますが、継承はキーワードimplementsを使用して行うことができます。複数の参照をカンマで区切ります
1. 形式: 通常のクラス参照インターフェイスclass MyPc implements demo , demo2 , demo3 { ... }
abstract class MyPc implements demo , demo2 , demo3 { ... }
class MyPc extends Root implements demo , demo2 , demo3 { ... }
interface demo3 extends demo { ... }
"; } function fun2() { echo "----------
"; } function fun3() { echo "1111111111
"; } function fun4() { echo "2222222222
"; } } class MyPs extends MyPc implements demo3 { function fun5() { echo "继承类后引用接口"; } } $p = new MyPs; $p->fun1(); $p->fun2(); $p->fun3(); $p->fun4(); $p->fun5(); ?>
複数のインターフェースを実装する
PHP はクラスを継承するときに同時に複数のインターフェースを実装することもできます:
discount; } function getUserType() { return "VIP用户"; } } class Goods{ var $price = 100; var $vc; //定义 User 接口类型参数,这时并不知道是什么用户 function run(User $vc){ $this->vc = $vc; $discount = $this->vc->getDiscount(); $usertype = $this->vc->getUserType(); echo $usertype."商品价格:".$this->price*$discount; } } $display = new Goods(); $display ->run(new VipUser); //可以是更多其他用户类型 ?>
インターフェースは特別な抽象クラスです。モデルの仕様とみなすこともできます。インターフェイスと抽象クラスの一般的な違いは次のとおりです。
1. サブクラスがインターフェイスを実装する場合、サブクラスはインターフェイス内のすべてのメソッドを (必要かどうかに関係なく) 実装する必要があります。抽象クラスを継承する場合は、必要なのはインターフェイスのみです。必要なメソッドを実装します。 2. インターフェイスで定義されたメソッド名が変更された場合、このインターフェイスを実装するすべてのサブクラスはメソッド名を同期的に更新する必要があり、抽象クラスのメソッド名が変更された場合、そのサブクラスの対応するメソッド名は変更されません。影響を受けます。(古いメソッドの実装と比較して) 新しいメソッドになるだけです。 3. 抽象クラスは 1 つだけ継承できます。サブクラスが複数の親クラスから継承する必要がある関数を実装する必要がある場合は、インターフェイスを使用する必要があります。
以上がPHPのキーワードインターフェースと実装の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。