快捷方式在斯卡拉子类,而不必重复构造函数的参数?(Shortcut for subclassing

2019-09-03 02:17发布

比方说,我有一些类是这样的:

abstract class View(val writer: XMLStreamWriter) {
    // Implementation
}

class TestView(writer: XMLStreamWriter) extends View(writer) {
    // Implementation
}

鉴于大部分子类都不会采取不同的构造函数的参数。 我希望能够写这样的事情:

class TestView extends View {
    // Implementation
}

有一些快捷方式来写子类,这样你就不必明确定义构造指定参数和它们传递给父(让我没有,如果我改变超的签名重新写我的所有子类) ?

Answer 1:

我怕你对你自己的存在。 构造函数不能被继承或多态性,子类构造,而他们必须始终做到援引其直接超类构造函数,没有也不可能自动完成的,除非有一个零参数的构造函数,这是由提暗示超在一个名为“扩展”的条款。



Answer 2:

abstract class View {
    def writer: XMLStreamWriter
    // Implementation
}

class TestView(val writer: XMLStreamWriter) extends View {
    // Implementation
}

这是你想要的?



文章来源: Shortcut for subclassing in Scala without repeating constructor arguments?