我在马丁·奥德斯基( Martin )的书中读到,“特性扩展了一个超类AnyRef”。对我来说就像一堂课。我知道我不能在类中通常使用的特征中使用默认构造函数。
class B(s: String)同时,我可以看出这样做是不可能的
trait A {
def this(s: String) {
super()
}
}编译器说:
Error:(14, 7) 'this' expected but 'super' found.
super()
^为什么是这样?
发布于 2015-11-10 23:46:49
直接从Scala语言规范
一个特征是一个类,它意味着作为一个混合体添加到其他类中。与普通类不同,特性不能具有构造函数参数。此外,没有构造函数参数传递给特征的超类。这并不是必要的,因为在初始化超类之后才初始化特征。
归根结底是:
https://stackoverflow.com/questions/33641628
复制相似问题