class Cl1 { def a = println("Cl1!") } trait Tr2 extends Cl1 { override def a = println("Tr2!") } trait Tr3 extends Cl1 { override def a = println("Tr2!") } class Cl3 extends Tr2 object Test05 { def main(args:Array[String]) = { val t:Cl1 = new Cl3() t.a } }