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
Я думал, что когда вы пишете trait T extends A
, он делает это так, что вы можете поместить черту T
только в класс, который является подклассом A
.Почему тогда я могу поставить его на B
?Это только для того, когда вы смешиваете это?Почему это невозможно при объявлении класса?