84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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
中。