鉴于两个独立的特征:
trait T1 {
def x = 42
}
trait T2 {
def x = 0
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试定义一个混合在这两个特征中的类,如:
class C extends T1 with T2
Run Code Online (Sandbox Code Playgroud)
我收到编译器错误:
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
Run Code Online (Sandbox Code Playgroud)
现在假设T1和T2是独立开发的,因此没有覆盖,因为它们不会覆盖任何东西.那么如何定义C?像这样:
class C extends T1 with T2 {
override def x = super.x
}
Run Code Online (Sandbox Code Playgroud)
?