PHPオブジェクト指向完全ガイド(14)php5インターフェース技術_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:44:08
オリジナル
909 人が閲覧しました

20.PHP5 インターフェース技術
PHP は、ほとんどのオブジェクト指向プログラミング言語と同様、多重継承をサポートしていません。つまり、各クラスは 1 つの親
クラスのみを継承できます。この問題を解決するために、PHP はインターフェイスを導入しました。インターフェイスの考え方は、インターフェイスを実装するクラスが実装する必要がある一連のメソッドを指定することです。インターフェイスは特殊な抽象クラスであり、抽象クラスは特殊なクラスであるため、インターフェイスも特殊なクラスであると言えるのはなぜですか。抽象クラス内のすべてのメソッドが
抽象メソッドである場合、「インターフェイス」を使用するように宣言メソッドを変更します。つまり、インターフェイス内のすべてのメソッドは
抽象メソッドとして宣言する必要があり、 で宣言することはできません。インターフェイスのすべてのメンバーはパブリック権限を持っています。
そのため、サブクラスを実装する際には、パブリックの許可制限も使用する必要があります。
クラスを宣言するときに使用するキーワードは「class」、インターフェースは特別なクラスであり、
使用されるキーワードは「interface」です。
クラスの定義:クラスクラス名{...}、インターフェースの宣言:インターフェース インターフェース名 { … }
コードスニペット


コードをコピーします コードは次のとおりです:
abstract function fun1(); ();
function fun3(){
… .
}
}
$demo=new Demo(); // インスタンス化されたオブジェクトはサブクラスに渡されます
テストextends Demo{
function fun1(){

}
function fun2(){

}
}
$test=new Test(); // 親クラスのすべての抽象化が実装されているため、サブクラスはオブジェクトをインスタンス化できます。
?>


上記の例では、インターフェイス "one" が定義されており、インターフェイス
内のすべてのメソッドは抽象メソッドであるため、宣言時に抽象化されます。メソッドの場合、抽象クラスのようにキーワード「abstract」を使用する必要はありません。また、デフォルトでは public であるため、このキーワードはデフォルトで追加されています。はい、インターフェイス内のすべてのメンバーはパブリックである必要があるため、インターフェイス内のメンバーに対して「プライベート」および「保護された」権限を使用することはできません。パブリックまたはデフォルトを使用する必要があります。さらに、インターフェース内で定数「constant」も宣言しました。インターフェース内では変数をメンバーとして使用できないため、const キーワード宣言を使用する必要があります。
インターフェイスは特別な抽象クラスであり、その中のすべてのメソッドは抽象メソッドであるため、インターフェイスはインスタンス オブジェクトを生成できません。これは仕様でもあり、すべての抽象メソッドはサブクラスによって実装される必要があります。
「extends」キーワードを使用して、あるインターフェースに別のインターフェースを継承させることができます。
コードスニペット



コードをコピーします

コードは次のとおりです:


//「extends」を使用して、別のインターフェイスを継承
インターフェイス Two extends One{
function fun3();
function fun4(); ?> そして、インターフェイス内のすべての抽象メソッドを実装するために、キーワード使用されているのは "implements" であり、 は前に説明した "extends" ではありません。
コード スニペット



コードをコピー

コードは次のとおりです。

// キーワード "implements" を使用します。 " インターフェースに抽象化を実装します。 Method
class Three 実装 One{
function fun1(){
… .
} function fun2(){ … . } }
//すべてのメソッドが実装されているので、次を使用できますオブジェクトをインスタンス化するためのサブクラス
$three=new Three();


抽象クラスを使用してインターフェイスにいくつかの抽象メソッドを実装することもできますが、オブジェクトをインスタンス化するには、この抽象
クラスが必要です。実装するにはすべての抽象メソッドを実装する必要があります
前に述べたように、PHP は単一継承です。ただし、クラスは複数のインターフェースを実装できます。これは、クラスが複数の標準に準拠する必要があることと同じです。 、学校にいる場合は国の法律を遵守するだけでなく、学校の規則も遵守しなければならないのと同じように、
コードスニペット



コードをコピー

コードは次のとおりです:

< ?php
/ /実装を使用して複数のインターフェイスを実装します
class Four implemtns インターフェイス 1、インターフェイス 2、… .{
//オブジェクトをインスタンス化する前に、インターフェイス内のすべてのメソッドを実装する必要があります。
}
?>
PHP では、1 つのクラスが複数のインターフェイスを実装できるだけでなく、クラスを継承するときに複数のインターフェイスを実装することもできます。
最初にクラスを継承してから、
コード スニペット
コードをコピーする必要があります。コードは次のとおりです:
//extendsを使用してクラスを継承し、implementsを使用して複数のインターフェイスを実装します
class Four extends Class name oneimplemtns Interface one、interface two、… .{
//すべてのメソッドインターフェース内で実装する必要があります。そうして初めてオブジェクトをインスタンス化できます
… … … ..
}
?>


http://www.bkjia.com/PHPjc/320624.html

tru​​ehttp://www.bkjia.com/PHPjc/320624.html技術記事 20.PHP5 インターフェイス テクノロジ PHP は、ほとんどのオブジェクト指向プログラミング言語と同様、多重継承をサポートしていません。つまり、各クラスは 1 つの親クラスのみを継承します。この問題を解決するために、PHP が導入されました...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート