为什么一个斯卡拉特质可以扩展一个类?
我发现Scala中的特征与Java中的接口类似(但是Java中的接口扩展了其他接口,它们不扩展类)。 我看到了一个关于特征扩展类的特征的例子 。
这样做的目的是什么? 为什么特质可以扩展类?
是的,他们可以,一个扩展一个class
的trait
限制了什么classes
可以扩展这个trait
– 也就是说混入这个trait
所有classes
都必须扩展这个class
。
scala> class Foo defined class Foo scala> trait FooTrait extends Foo defined trait FooTrait scala> val good = new Foo with FooTrait good: Foo with FooTrait = $anon$1@773d3f62 scala> class Bar defined class Bar scala> val bad = new Bar with FooTrait <console>:10: error: illegal inheritance; superclass Bar is not a subclass of the superclass Foo of the mixin trait FooTrait val bad = new Bar with FooTrait ^