2010-01-10 13 views
54

Posiadam podstawową klasę abstrakcyjną (cechę). Ma abstrakcyjną metodę: foo(). Jest rozszerzany i implementowany przez kilka klas pochodnych. Chcę utworzyć cechę, która może być mieszana z klasami pochodnymi, tak aby implementowała foo(), a następnie wywołuje klasy pochodnej: foo().Zastępowanie cech i metod abstrakcyjnych w Scali

Coś jak:

trait Foo { 
    def foo() 
} 

trait M extends Foo { 
    override def foo() { 
    println("M") 
    super.foo() 
    } 
} 

class FooImpl1 extends Foo { 
    override def foo() { 
    println("Impl") 
    } 
} 

class FooImpl2 extends FooImpl1 with M 

Próbowałem rodzajów i typów strukturalnych własny, ale nie mogę zmusić go do pracy.

Odpowiedz

Powiązane problemy