ホームページ >バックエンド開発 >PHPチュートリアル >PHP5のオブジェクト指向インターフェース技術を詳しく解説_PHPチュートリアル
PHP 5 はインターフェースの概念もサポートしており、インターフェースを導入してキーワードを実装しています。 Java と同様、PHP 5 はインターフェイスを使用して「多重継承」と同様の効果を実現します。
PHP5 インターフェースの構文は次のとおりです:
クラスを宣言するときはキーワード「class」を使用し、特別なクラスであるインターフェースはキーワード「interface」を使用します。
クラスの定義:classクラス名{…}、インターフェースの宣言:interfaceインターフェース名{…}
特定の PHP5 抽象クラスのコードは次のとおりです:
コードは次のとおりです | コードをコピー |
抽象クラス AbstractClass { 抽象パブリック関数 test(); }
クラス ImplementedClass extends AbstractClass { パブリック関数 test() { echo "ImplementedClass::test() が呼び出されました。"; } }
$o = 新しい実装クラス ;$o->test();
|
関数display();
} 印刷可能なインターフェイス { 関数 doprint() }
クラス foo は、displayable,printable を実装します { 関数display(){ // コード } 関数 doprint() { // コード } }
|
抽象クラスと PHP5 インターフェイスの導入により、PHP は完全なオブジェクト指向言語になります
コードは次のとおりです
インターフェース 1 | |||||||||||||||||||||||||||
const 定数 = '定数値';
パブリック関数 fun2();
上記の例では、インターフェイス「one」が定義されており、その中で 2 つの抽象メソッド「fun1」と「fun2」が宣言されています。インターフェイス内のすべてのメソッドは抽象メソッドであるため、インターフェイスのような抽象メソッドを宣言する必要はありません。この方法では、「abstract」キーワードがデフォルトで追加されています。また、デフォルトは public であるため、このキーワードは削除することもできます。インターフェイスはパブリックである必要があります。インターフェイス内のメンバーには、「プライベート」権限と「保護された」権限を使用することはできません。パブリックまたはデフォルトを使用する必要があります。さらに、インターフェイス内で定数「constant」も宣言しました。インターフェイス内では変数メンバーを使用できないため、const キーワード宣言を使用する必要があります。 インターフェイスは特別な抽象クラスであり、その中のすべてのメソッドは抽象メソッドであるため、インターフェイスはインスタンス オブジェクトを生成できません。これは仕様でもあり、すべての抽象メソッドはサブクラスによって実装される必要があります。 「extends」キーワードを使用すると、あるインターフェイスが別のインターフェイスを継承できるようになります。
インターフェース内のすべての抽象メソッドを実装するインターフェースのサブクラスを定義する場合、使用されるキーワードは、前述したように「extends」ではなく「implements」です。 //キーワード「implements」を使用して、インターフェースに抽象メソッドを実装します
//すべてのメソッドが実装されたので、サブクラスを使用してオブジェクトをインスタンス化できます
抽象クラスを使用してインターフェースにいくつかの抽象メソッドを実装することもできますが、オブジェクトをインスタンス化するには、この抽象クラスにそのすべての抽象メソッドを実装するためのサブクラスが必要です。 PHP は単一の継承を持つと前に述べましたが、クラスは複数のインターフェースを実装できます。これは、法律を遵守するだけではないのと同じように、クラスは複数の仕様に準拠する必要があるのと同じです。学校に通っている場合は、学校の規則にも従わなければなりません
VideoCard.php インターフェースファイル (グラフィックスカードの機能インターフェース定義)
4つの側面に分かれると思います 2. 各モジュールのインターフェース(ニュースインターフェースNewsInterfaceなど) 3. インターフェースを実装するクラス (ニュース実装クラス NewsInterfaceImpl がページで使用されるいくつかのメソッドを記述し、新しいオブジェクトがここでそのメソッドを呼び出します) 4、モジュールクラス(ニュースクラスNews)
http://www.bkjia.com/PHPjc/629208.html |