在不重复构造函数参数的情况下在Scala中进行子类化的快捷方式?

Dan*_*ton 11 constructor scala subclass

假设我有一些这样的类:

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

class TestView(writer: XMLStreamWriter) extends View(writer) {
    // Implementation
}
Run Code Online (Sandbox Code Playgroud)

View的大多数子类都不会采用不同的构造函数参数.我希望能够写出这样的东西:

class TestView extends View {
    // Implementation
}
Run Code Online (Sandbox Code Playgroud)

是否有一些编写子类的快捷方式,以便您不必显式定义构造函数args并将它们传递给超类(因此,如果我更改超类的签名,则不必重新编写所有子类) ?

Ran*_*ulz 13

我担心你自己在那里.构造函数不是继承或多态和子类构造函数,而它们必须并且总是为它们的直接超类调用构造函数,不能并且不能自动完成,除非有一个零参数构造函数,这是提到的"extends"子句中的超类名称.


Mus*_*med 12

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

class TestView(val writer: XMLStreamWriter) extends View {
    // Implementation
}
Run Code Online (Sandbox Code Playgroud)

这是你想要的?