package practice
open class Parent{
open val name="BABA"
val money=5
get(){
println("获取B属性值")
return field
}
}
open class Child: Parent(){
override var name="ERZI"
var age=1
// val money=2 不允许重写(覆盖父属性)
get(){
println("获取E属性值{$field}")
return field
}
set(value) {
field=value
println("写入{$field}")
}
}
fun main(args: Array<String>) {
var child=Child();
child.name="ss"
child.age=2
println( child.name)
println( child.age)
}
kotlin每定义一个属性 会默认生成一个getter和setter方法 所以若要重写也就是覆盖默认方法。需要在每一个属性下面重写get set才可以
var name=4
get(){
println("获取E属性值{$field}")
return field
}
set(value) {
field=value
println("写入{$field}")
}
var age=1
get(){
println("获取E属性值{$field}")
return field
}
set(value) {
field=value
println("写入{$field}")
}
感觉是值类型和引用类型区别