如何从继承的 class 中获取新的变量值?
How to get new variable value from inherited class?
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
}
我的问题是:为什么我得到的是空值?
我是否从继承的 class 中错误地获取了变量?
是因为你重写函数的时候,并没有调用super函数。如果要调用父 class 中的函数,则必须将代码更改为:
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)
}
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
}
我的问题是:为什么我得到的是空值? 我是否从继承的 class 中错误地获取了变量?
是因为你重写函数的时候,并没有调用super函数。如果要调用父 class 中的函数,则必须将代码更改为:
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)
}