package practiceopen class Parent{open val name="BABA"val money=5get(){println("獲取B屬性值")return field}}open class Child: Parent(){override var name="ERZI"var age=1// val money=2 不允許重寫(xiě)(覆蓋父屬性)get(){println("獲取E屬性值{$field}")return field}set(value) {field=valueprintln("寫(xiě)入{$field}")}}fun main(args: Array<String>) {var child=Child();child.name="ss"child.age=2println( child.name)println( child.age)}寫(xiě)入{2} ss 獲取E屬性值{2} 2 上面是打印結(jié)果 打印結(jié)果 :只有age才調(diào)用了set get方法 name沒(méi)有調(diào)用 為什么?
1 回答

守著一只汪
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
kotlin每定義一個(gè)屬性 會(huì)默認(rèn)生成一個(gè)getter和setter方法 所以若要重寫(xiě)也就是覆蓋默認(rèn)方法。需要在每一個(gè)屬性下面重寫(xiě)get set才可以
var name=4
get(){
println("獲取E屬性值{$field}")
return field
}
set(value) {
field=value
println("寫(xiě)入{$field}")
}
var age=1get(){ println("獲取E屬性值{$field}") return field }set(value) { field=value println("寫(xiě)入{$field}") }
- 1 回答
- 0 關(guān)注
- 2972 瀏覽
添加回答
舉報(bào)
0/150
提交
取消