给定两个独立的特征:
trait T1 {
def x = 42
}
trait T2 {
def x = 0
}
如果我尝试定义一个混合这两个特征的类,例如:
class C extends T1 with T2
我得到一个编译器错误:
error: overriding method x in trait T1 of type => Int;
method x in trait T2 of type => Int needs `override' modifier
class C extends T1 with T2
^
one error found
现在假设 T1 和 T2 是独立开发的,因此没有覆盖,因为它们没有覆盖任何东西。那么如何定义 C 呢?像这样:
class C extends T1 with T2 {
override def x = super.x
}
?