Kotlin 主构造、次构造、super、this
主构造就是在声明类加constructor的方法
次构造就是不是在声明类加constructor的方法
open class Father {
constructor(name: String) {
println("$name Father一个参数的构造方法")
}
constructor(name: String, age: Int) {
println("$name Father两个参数的构造方法")
}
init {
println("Father init 初始化!")
}
}
class Son : Father {
constructor(name: String) : this(name, 0) {
println("$name Son一个参数的构造方法")
}
constructor(name: String, age: Int) : super(name, age) {
println("$name Son的两个参数的构造方法")
}
}
fun main() {
var b = Son("son")
}
结果输出:
父类先初始化,依次先执行父类方法,然后执行子类对应方法
Father init 初始化!
son Father两个参数的构造方法
son Son的两个参数的构造方法
son Son一个参数的构造方法
Process finished with exit code 0