我看到Scala中的特性与Java中的接口类似(但Java中的接口扩展了其他接口,它们不扩展类).我在SO上看到了一个关于特征使用的例子,其中特征扩展了一个类.
这样做的目的是什么?为什么traits可以扩展类?
ade*_*rtc 69
是的,他们可以,一个trait
扩展的class
东西限制了classes
可以扩展的东西trait
- 即所有必须扩展的classes
混合.trait
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
^
Run Code Online (Sandbox Code Playgroud)