Kotlin面向对象 - 继承(open和override)

Fathor.kt

/**
 * 父亲
 */
open class Fathor{
    var chactor:String = "性格内向"
    fun action(){
        println("公共场合喜欢大声喧哗")
    }
}

Son.kt

/**
 *  孩子
 */
class Son : Fathor()

Test.kt

fun main(args:Array){
    var son1 = Son()
    println("儿子的性格${son1.chactor}")
    son1.action()
}

 

子类使用override关键字重写父类方法

Son.kt

/**
 *  孩子
 */
class Son : Fathor(){
    override  fun action(){
        println("儿子很乖,在公共场合很有礼貌")
    }
}

父类方法增加open关键字开放方法允许重写的权限

Fathor.kt

/**
 * 父亲
 */
open class Fathor{
    var chactor:String = "性格内向"
    open fun action(){
        println("公共场合喜欢大声喧哗")
    }
}

Test.kt

fun main(args:Array){
    var son1 = Son()
    println("儿子的性格${son1.chactor}")
    son1.action()
}

你可能感兴趣的:(Kotlin-Grammar)