2.继承

kotlin中一个类如果想被继承,需要abstract或者open修饰

abstract class Man{
    fun work(){}
}
open class Woman{
    fun work(){}
}
class FiveA:Man()
class FiveB:Woman()

如果被abstract修饰的父类,他的方法想要被复写,该方法需要被open修饰或者abstract 修饰

abstract class SixMan{
    open fun work(){}
    abstract fun song()
}
class SixA:SixMan(){
    override fun work() {
        super.work()
    }
    override fun song() {
        
    }
}

kotlin中默认的类都是final的,如果想要被继承,需要用open修饰
如果被open修饰的父类,他的方法想要被复写,该方法需要被open修饰

open class Man7{
    fun work(){

    }
    open fun song(){

    }
}

class Person7 :Man7(){
    override fun song() {
        super.song()
    }
}

属性的复写:父类属性的复写需要override修饰

 abstract class Person8(open val age: Int){
    abstract fun work()
}

class MaNong(age: Int): Person8(age){

    override val age: Int
        get() = 0

    override fun work() {
        println("我是码农,我在写代码")
    }
}

fun main(args: Array) {
    val person: Person8 = MaNong(23)
    person.work()
}

你可能感兴趣的:(2.继承)