ホームページ >バックエンド開発 >PHPチュートリアル >なぜ PHP は多重継承ではなくトレイトを直接導入しないのでしょうか?

なぜ PHP は多重継承ではなくトレイトを直接導入しないのでしょうか?

WBOY
WBOYオリジナル
2016-07-06 13:53:481075ブラウズ

なぜ PHP は多重継承ではなくトレイトを直接導入しないのでしょうか?

返信内容:

なぜ PHP は多重継承ではなくトレイトを直接導入しないのでしょうか?

インターネット上では多くの議論があり、
に関する wiki の紹介: https://zh.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E7%BB%A7%E6%89% BF多重继承

なぜ PHP は多重継承ではなくトレイトを直接導入しないのでしょうか?

もし

なら、あなたはどれを受け継ぎますか?ClassAClassB有共同的eat()

多重継承は開発者にとって多くの状況で役立ちますが、コンパイラー開発者とプログラマーの両方にとって複雑さが大幅に増加します。 2 つの親クラスに同じ名前のデータ メンバーまたはメソッドがある場合、問題が発生します。サブクラスからの参照を解決するのは困難です。さらに、2 つの親クラスが同じ基本クラスを継承すると、

が形成されます。 钻石问题

多重継承はデザインパターンに大きな影響を与えます。 。バー

多重継承は多くの設計パターンに反しており、ほとんどの言語では採用されていません。

なのに
trait和多继承有很多相似的地方,但其很好的规避了多继承所容易出现的问题,也让其他语言的设计思路可以很方便的运用到php

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。