PHPインタフェースのマルチ継承とtaritsによるマルチ継承効果の実現方法

2599 ワード

この例では,PHPインタフェースのマルチ継承とtaritsによるマルチ継承効果の実現方法について述べる.皆さんの参考にしてください.具体的には以下の通りです.
インタフェースマルチ継承
PHPのオブジェクト向けでは,インタフェースはインタフェースを継承することができる.PHPクラスは1つの親(単一継承)しか継承できませんが、インタフェースは複数の継承を実現し、1つ以上のインタフェースを継承することができます.もちろんインタフェースの継承もクラスの継承と同様にextendsキーワードを使用しますが、複数の継承を行うには、継承したインタフェースをカンマで区切るだけです.
インタフェースが他のインタフェースを継承する場合、親インタフェースの静的定数属性と抽象メソッドを直接継承するため、クラスがインタフェースを実装する場合は、関連するすべての抽象メソッドを実装する必要があります.
次に例を示します.
1.単一インタフェースの継承

";
  }
  function dancing($name){
    echo $name."    !";
  }
}
$demo=new testC();
$demo->echostr();
$demo->dancing("  ");
//    
/**
      ,           
        !
**/


2.マルチインタフェースの継承

";
  }
  function dancing($name){
    echo $name."    !";
    echo "
"; } function singing($nickname){ echo $nickname." !"; } } $demo=new testD(); $demo->echostr(); $demo->dancing(" "); $demo->singing(" "); // /** , ! ! ! **/

taritsマルチ継承
複数継承のうちの1つのクラスは複数の親を同時に継承することができ、複数の親を組み合わせる機能C++では、このようなモデルを使用して統合の柔軟性を強化しているが、多重継承が柔軟すぎて「菱形継承」をもたらすため、使用が困難になり、モデルが複雑になり、現在では多くの言語が多重継承というモデルを放棄している.しかし、場合によっては多継承を使いたいが、PHPはあまり継承していないので、このようなものを発明した.
Traitsは、異なるクラスに呼び出されるメソッドのセットとして理解できますが、Traitsはクラスではありません!インスタンス化できません.まず例を挙げて文法を見てみましょう.

 traitMethod1 ();
$obj-> traitMethod2 (); 
>


具体的な紹介と使用は公式の紹介を見ることができます.
PHPに関する詳細について興味のある読者は、「phpオブジェクト向けプログラム設計入門チュートリアル」、「PHP配列(Array)操作テクニック大全」、「PHP基本文法入門チュートリアル」、「PHP演算と演算子用法総括」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.