インタビューで、PHP は多重継承をサポートしているかどうかという質問があったのを覚えています。
回答: いいえ、単一継承のみがサポートされています。
#多重継承を実装するにはどうすればよいですか?
回答: インターフェイスまたはトレイトを使用して実装できます。 (推奨学習:PHP プログラミングの入門から習熟まで )
なぜこの問題を考えるのですか?クラスが複数のインターフェースを継承する場合、それらは同じプロパティとメソッドを持つことになるからです。メソッドまたはプロパティが参照され、誰がオーバーライドされますか?概要:
1. インターフェイスを使用して、クラスをインスタンス化できないこと、属性は定数でなければならないこと、およびメソッドにメソッド本体を含めることはできないことを宣言します2. トレイトによって宣言されたクラスはインスタンス化できません。これは use によって導入され、親クラスの同じプロパティとメソッドを上書きします。複数の use がある場合、次のものが同じプロパティとメソッドを上書きします。上から順にインターフェイスとは何ですか?
trait とは何ですか?
Priority
基本クラスから継承されたメンバーは、トレイトによって挿入されたメンバーによってオーバーライドされます。優先順位は、現在のクラスのメンバーがトレイトのメソッドをオーバーライドし、トレイトが継承されたメソッドをオーバーライドすることです。class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello();use ステートメントに複数の特性をカンマで区切ってリストします。これらはすべてクラスに挿入できます。 ###
以上がPHPで多重継承を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。