Syntax Kotlin,子类的二级构造函数
我试着这样调用父级的第二个构造函数Syntax Kotlin,子类的二级构造函数,syntax,kotlin,Syntax,Kotlin,我试着这样调用父级的第二个构造函数 abstract class A(val i: Int) { constructor(c: C) : this(c.i) } class B() : A(0) { constructor(c: C) : super(c) // error is here } class C(val i: Int) 但它会生成预期的主构造函数调用错误。子类如何调用父类的二级构造函数?根据: 如果类有一个主构造函数,每个次构造函数 需要直接或间接委托给主构造
abstract class A(val i: Int) {
constructor(c: C) : this(c.i)
}
class B() : A(0) {
constructor(c: C) : super(c) // error is here
}
class C(val i: Int)
但它会生成预期的主构造函数调用
错误。子类如何调用父类的二级构造函数?根据:
如果类有一个主构造函数,每个次构造函数
需要直接或间接委托给主构造函数
间接通过另一个二级构造函数。使用this关键字完成对同一类的另一个构造函数的委托
您为B
(即B()
)声明了一个主构造函数,因此次构造函数应该调用其主构造函数
子类如何调用父类的辅助构造函数
如果希望二级构造函数调用父级的二级构造函数,则应首先删除B
的主构造函数
abstract class A(val i: Int) {
constructor(c: C) : this(c.i)
}
class B : A {
constructor(c: C) : super(c)
}
class C(val i: Int)