假设我有类似这样的课程:
abstract class View(val writer: XMLStreamWriter) {
// Implementation
}
class TestView(writer: XMLStreamWriter) extends View(writer) {
// Implementation
}
View的大多数子类都不会采用不同的构造函数参数。我希望能够写出这样的东西:
class TestView extends View {
// Implementation
}
是否有一些编写子类的快捷方式,因此您不必显式定义构造函数args并将它们传递给超类(因此,如果我更改签名,则不必重新编写所有子类超类)?
答案 0 :(得分:13)
我担心你自己在那里。构造函数不是继承的,也不是多态的和子类构造函数,而它们必须并且总是为它们的直接超类调用构造函数,不要也不能自动完成,除非有一个零参数构造函数,这是提到的“扩展”子句中的超类名称。
答案 1 :(得分:12)
abstract class View {
def writer: XMLStreamWriter
// Implementation
}
class TestView(val writer: XMLStreamWriter) extends View {
// Implementation
}
这是你在找什么?