W scala wielokrotnego dziedziczenia, jak rozwiązać sprzeczne metody z tym samym podpisem, ale z innym typem powrotu?
Rozważ poniższy kod:
trait A {
def work = { "x" }
}
trait B {
def work = { 1 }
}
class C extends A with B {
override def work = super[A].work
}
KlasaC
nie skompiluje się w scala 2.10, ponieważ „nadpisuje działanie metody w cechy A typu => String; metoda pracy ma niezgodny typ”.
Jak wybrać konkretną metodę?