11

假设我有一些这样的课程:

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

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

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

class TestView extends View {
    // Implementation
}

是否有一些编写子类的捷径,这样您就不必显式定义构造函数参数并将它们传递给超类(这样如果我更改超类的签名,我就不必重新编写所有子类) ?

4

2 回答 2

13

恐怕你一个人在那里。构造函数不是继承的或多态的和子类构造函数,虽然它们必须并且总是为它们的直接超类调用构造函数,但不要也不能自动完成,除非有一个零参数的构造函数,这是通过提及“扩展”子句中的超类名称。

于 2009-10-31T14:44:35.527 回答
12
abstract class View {
    def writer: XMLStreamWriter
    // Implementation
}

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

这是你想要的?

于 2009-10-31T17:37:24.057 回答