open class Parent(){
protected var z : Int? = null
private fun getMyAge(){
val x = 65
val y = 10
z = x % y
}
}
class Child:Parent(){
ovveride fun getMyAge()
println(z) //here I get null
}
我的問題是:為什么我得到空值?我是否從繼承的類中錯誤地獲取了變數?
uj5u.com熱心網友回復:
這是因為當您覆寫該函式時,不會呼叫超級函式。如果要呼叫父類中的函式,則必須將代碼更改為:
open class Parent(){
protected var z : Int? = null
private fun getMyAge(){
val x = 65
val y = 10
z = x % y
}
}
class Child:Parent(){
ovveride fun getMyAge()
super.getMyAge()
println(z)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/424206.html
上一篇:在多級繼承中,如果其父級已經實作了純虛方法,孫子級是否需要實作它?
下一篇:在元類中傳遞父屬性
