84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
php为何不直接引入多重继承而是引入traits?
学习是最好的投资!
网上有很多讨论,wiki关于多重继承的介绍:https://zh.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E7%BB%A7%E6%89%BF
多重继承
如果ClassA和ClassB有共同的eat(),那么你是继承哪一个?
ClassA
ClassB
eat()
多重继承在许多情况下,作为一个开发人员有用,但它大大增加了编译器开发者和程序员双方的复杂性。当两个父类具有数据成员或名称相同的方法发生的一个问题。它是难以解决正在由子类所引用。另外当两个父类从同一个基类继承,形成了钻石问题。
钻石问题
多重继承对设计模式的影响较大。。吧
多重继承是违背很多设计模式的,绝大多数语言都没有采用。虽然trait和多继承有很多相似的地方,但其很好的规避了多继承所容易出现的问题,也让其他语言的设计思路可以很方便的运用到php中。
trait
php
网上有很多讨论,
wiki关于
多重继承
的介绍:https://zh.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E7%BB%A7%E6%89%BF如果
ClassA
和ClassB
有共同的eat()
,那么你是继承哪一个?多重继承在许多情况下,作为一个开发人员有用,但它大大增加了编译器开发者和程序员双方的复杂性。当两个父类具有数据成员或名称相同的方法发生的一个问题。它是难以解决正在由子类所引用。另外当两个父类从同一个基类继承,形成了
钻石问题
。多重继承对设计模式的影响较大。。吧
多重继承是违背很多设计模式的,绝大多数语言都没有采用。
虽然
trait
和多继承有很多相似的地方,但其很好的规避了多继承所容易出现的问题,也让其他语言的设计思路可以很方便的运用到php
中。