0

extend私はあなたのようなクラスのやり方を理解しています、私はとChildClass extends ParentClassの使用法を理解しています、そして私は理解していますclass abstractioninterfacestraits

私が読んだ記事の中で、ほとんどの人は、特性はextends単一の拡張のみをサポートするため、機能では実行されない多重継承を実現するために実際に使用されると述べています。

私が特性を理解しているように、それはさまざまなクラスや他の特性で使用できる関数のコレクションです。

この質問では、関数コレクションを追加せずに、文字通り複数のクラスの拡張を行うことがどのように正しく行われるかを教えてください。

4

1 に答える 1

5

私はこれについて非常に明確にすることができます:

PHPはこれを許可しません

私は確かに、いくつかの制限された条件下で、特性が多重継承を実現する方法を提供すると信じています。コードベースが非常に純粋な OOP であり、適切に設計されている場合は、トレイトを使用して多重継承を実現できます。

しかし、それはすべてをキャッチするものではありません。これがつまずきのブロックである場合は、これを PHP の設計のせいにしないでください。おそらく、必要なことを行う別の方法を考える必要があります。(例: サブクラスではなくデリゲート)。

于 2013-03-15T23:14:08.457 に答える