1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
trait T(x: Int, val y: Int) { def f = x } trait U extends T { override def f = super.f + y } class C(x: Int) extends U with T(x, x * x) class D extends C(10) with T { } object Test { def main(args: Array[String]): Unit = assert(new D().f == 110) }