scala> class A
defined class A
scala> trait T extends A { val t = 1 }
defined trait T
//why can I do this?
scala> class B extends T
defined class B
scala> new B
res0: B = B@2e9c76
scala> res0.t
res1: Int = 1
I thought that when you write trait T extends A
, it makes it so you can only put trait T
on a class that is a subclass of A
. Why can I put it on B
, then? Is this only for when you mix it in? Why is this not possible when declaring the class?