Имеются две независимые черты:
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
}