/**
* 繼承
* 1.類默認(rèn)是final類的,不可以繼承,需要繼承需要加abstract或者open關(guān)鍵字
* 2.不加open關(guān)鍵詞的方法也是final型的,不能被重寫
* 3.對于abstract關(guān)鍵詞修飾的方法沧奴,子類必須實(shí)現(xiàn),不需要使用super關(guān)鍵字
* 4.如子類需要重寫父類的屬性浪耘,父類的屬性需加open關(guān)鍵字篮绿,子類需加override關(guān)鍵字
*/
abstract class Person(open val age: Int) {
open fun work() {
}
}
class Marker(age: Int) : Person(age) {
override val age: Int
get() = 0
override fun work() {
super.work()
println("我是碼農(nóng)纹份,在寫代碼")
}
}
class Doctor(override val age: Int) : Person(age) {
override fun work() {
super.work()
println("我是醫(yī)生,在看病")
}
}
fun main(args: Array<String>) {
val person: Person = Marker(23)
person.work()
println(person.age)
val person2: Person = Doctor(29)
person2.work()
println(person2.age)
}
運(yùn)行結(jié)果