open class First{
open var a: Int = 0
get(){
println("First a")
return field
}
set(value){
println("parent setter")
}
val b: Int = 0
}
class Second: First() {
override var a: Int = 0
get(){
println("Second a")
return field +1
}
set(value){
println("child setter")
println(value)
}
}
fun main() {
val sec = Second()
sec.a = 5
println(sec.a)
println(sec.b)
}
위와같이 프로퍼티별로 커스텀 접근자를 생성 할 수 있고
프로퍼티를 오버라이딩해서 커스텀 접근자를 변경하는 것도 가능하다.