PHP5 インターフェース技術
PHP は、ほとんどのオブジェクト指向プログラミング言語と同様に、多重継承をサポートしていません。つまり、各クラスは 1 つの親
クラスのみを継承します。この問題を解決するために、PHP はインターフェイスを導入しました。インターフェイスの考え方は、インターフェイスを実装するクラスが実装する必要がある一連のメソッドを指定することです。インターフェイスは特別な
抽象クラス であり、抽象クラスは特別なクラスであるため、インターフェイスも 特別なクラスであると言われているのはなぜですか?抽象クラス内のすべてのメソッドが
抽象メソッドである場合、「インターフェイス」を使用するように宣言メソッドを変更します。つまり、インターフェイス内のすべてのメソッドは
抽象メソッドとして宣言する必要があり、 で宣言することはできません。インターフェイスのすべてのメンバーはパブリック権限を持っています。
そのため、サブクラスを実装する際には、パブリックの許可制限も使用する必要があります。
クラスを宣言するときに使用するキーワードは「class」、インターフェースは特別なクラスであり、
使用されるキーワードは「interface」です。
クラスの定義:クラスクラス名{...}、インターフェースの宣言:インターフェイス インターフェイス名 { … }
コード スニペット
<?php abstract class Demo{ var $test; abstract function fun1(); abstract function fun2(); function fun3(){ … . } } $demo=new Demo(); //抽象类为能产生实例对象,所以这样做是错的,实例化对象交给子类 class Test extends Demo{ function fun1(){ … } function fun2(){ … } } $test=new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法 ?>上の例では、インターフェイス "one" が定義されており、インターフェイス内のすべてのメソッドは抽象メソッドであるため、2 つの抽象メソッド "fun1" と "fun2" を宣言しています。抽象メソッドを宣言する場合、抽象クラスのように「abstract」キーワードを使用する必要はありません。また、このキーワードはデフォルトで追加されているため、インターフェース内の「public」アクセス許可も削除できます。はパブリックであり、インターフェイス内のすべてのメンバーはパブリックである必要があるため、インターフェイス内のメンバーに対して「プライベート」および「保護された」アクセス許可を使用することはできず、パブリックまたはデフォルトを使用する必要があります。さらに、インターフェース内で定数「constant」も宣言しました。インターフェース内では変数をメンバーとして使用できないため、const キーワード宣言を使用する必要があります。
インターフェースは特別な抽象クラスであり、その中のすべてのメソッドは抽象メソッドであるため、インターフェースはインスタンス オブジェクトを生成できません。また、インターフェースは仕様でもあり、すべての抽象メソッドはサブクラスによって実装される必要があります。
"extends" キーワードを使用して、あるインターフェイスに別のインターフェイスを継承させることができます。
コード スニペット
<?php //使用”extends”继承另外一个接口 interface Two extends One{ function fun3(); function fun4(); } ?>
<?php //使用“implements”这个关键字去实现接口中的抽象方法 class Three implements One{ function fun1(){ … . } function fun2(){ … . } } //实现了全部方法,我们去可以使用子类去实例化对象了 $three=new Three(); ?>
<?php //使用implements实现多个接口 class Four implemtns 接口一, 接口二, … .{ //必须把所有接口中的方法都要实现才可以实例化对象。 } ?>
以上がPHPオブジェクト指向インターフェース技術事例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。