当两个特征定义如下时,
trait A
trait B extends A
这两者之间有什么区别。
class C extends B
class D extends A with B
我认为C类或D类没有必要扩展特质A,因为特质B已经扩展了特质A.
为什么这经常写成“D级用A扩展A”?
答案 0 :(得分:6)
这是一个非常好的问题......我会尝试以主观回答回答。
我认为,当层次结构被线性化时,将A
mixin扩展为B
非常重要,在这种特殊情况下,如果你将D
与另一个特征混合,会有什么不同之处{ {1}}重新实现了A中的一些(但不是全部)函数,这些函数在E
B
中未得到明确建议,以满足您在D
中的需求。所以你有
class D extends A with E with B
此外,在这种情况下,我们保留D
为A