Tengo una clase abstracta base (rasgo). Tiene un método abstracto foo()
. Es extendido e implementado por varias clases derivadas. Quiero crear un rasgo que pueda mezclarse en las clases derivadas para que implemente foo()
y luego llame al foo()
de la clase derivada.Anulación de los rasgos y los métodos abstractos en Scala
Algo así como:
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
me trató tipos de auto y tipos estructurales, pero no puedo conseguir que funcione.