fun main() {
//当调用孙类实例对象和方法时,执行顺序为父为构造函数,子类构造函数,孙类构造函数,孙类方法
sun(true).pr()
}
//,
/**
* 声明1个类 Animal(加open关键字的话就为可继承),设置类属性m2等于参数men
* 1.主构造函数有一个参数men,初始化语句init的功能是打印men
* 2.声明方法pr,调用类属性m2,打印m2
*/
open class Fu(sex: Boolean) {
var sex2 = sex
init {
println("执行父类构造函数${sex}")
}
//s可重写的方法需加上open关键词,否则继承后无法重写
open fun pr() {
println("执行父类方法${sex2}")
}
}
//声明子类,继承自FU类,需传入父寮定义的参数
open class zhi(namezhi: Boolean) : Fu(namezhi) {
init {
println("执行子类构造函数${namezhi}")
}
}
//声明孙类,继承自子类,需传入子寮定义的参数
class sun(namesun: Boolean) : zhi(namesun) {
var namesun = namesun
init {
println("执行孙类构造函数${namesun}")
}
//重写方法加上override关键词
override fun pr() {
println("重写后的PR是孙类方法${namesun}")
}
}
Kotlin 类的继承、构造函数、方法重写和执行的优先顺序
最新推荐文章于 2023-02-24 08:21:08 发布