例如,我们有这个父元素:
open class Parent(val id: Int, val name: String?) {
constructor() : this(-1, null)
}
一个子类必须有一个带两个参数的构造函数和一个无参构造函数,就像父类一样:
Translated:A child class must have a two-parameter constructor and an empty constructor, just like the parent class.
class Child(id: Int, name: String?) : Parent(id, name) {
constructor() : super() // syntax error
}
一个子构造函数如何使用其父类的次要构造函数?
我知道可以通过实现一个子构造函数并传入与父构造函数相同的值来达到此目的,但这不仅似乎是冗余的,而且通常情况下我的子类具有额外的参数作为主构造函数的一部分,但不需要中间构造函数(具有不包括所有额外参数的参数)。以下是一个实现了这种方式的示例子类,以防我没有表述清楚:
class Child(id: Int, name: String?) : Parent(id, name) {
constructor() : this(-1, null) // no syntax error, but redundant
}