open class Foo constructor(a: Int) {
private val _a: Int = a
}
open class Bar : Foo {
constructor(a: Int, b: Int) : super(a) {
// doSomething
}
constructor(a: Int, b: String) : super(a) {
// doSomething
}
}
我想将“ Bar”类的“ constructor(a:Int,b:Int)”作为主要构造函数,并调用超类的构造函数。怎么写?
答案 0 :(得分:3)
像普通一样声明您的主要构造函数,并使用其参数“调用”继承的类的构造函数。然后将您的主要构造函数逻辑移至init
块中:
open class Bar(a: Int, b: Int) : Foo(a) {
init {
// [1] init block serves as primary constructor body
}
constructor(a: Int, b: String) : this(a, b.toInt()) {
// [2] doSomething
}
}
这将施加以下约束: