Rozważmy poniższy kod:W dziedziczeniu wielokrotnym scala, jak rozwiązywać sprzeczne metody z tym samym podpisem, ale z innym typem zwracania?
trait A {
def work = { "x" }
}
trait B {
def work = { 1 }
}
class C extends A with B {
override def work = super[A].work
}
Klasa C
nie będzie kompilować w Scala 2.10, z powodu „nadrzędnego metoda działają cecha A type => String, praca metoda ma niezgodnego typu”.
Jak wybrać jedną konkretną metodę?