Considerando:¿Cuál es la diferencia entre mixins estáticas y rasgo dinámico
abstract class Base {
def something() = println("Base")
}
trait TraitA extends Base {
abstract override def something() = { super.something(); println("TraitA"); }
}
class Child extends Base {
override def something() {
println("Child")
}
}
Y luego:
val x = new Child with TraitA
x.something()
me sale:
Child
TraitA
Pero si uso:
class Child extends Base with TraitA {
override def something() {
println("Child")
}
}
val x = new Child
x.something()
que conseguiría solamente:
Child
¿Cuáles son los differentes de la utilización de un rasgo en el sitio de construcción o sitio de declaración? ¿Puedo tener el primer comportamiento (rasgos apilables) mientras extiendo/con el rasgo en la declaración de la clase?