【发布时间】:2019-07-15 09:52:57
【问题描述】:
“传统”实现:
interface IFoo{
fun getS():String
fun modifyS():Unit
}
class Foo : IFoo{
private var s = "bar"
override fun getS() = s.toUpperCase()
override fun modifyS(){ s = when(s){
"bar" -> "baz"
else -> "bar"
}}
}
我现在想要的是这样的:
interface IFoo{
var s:String
protected set
fun modifyS():Unit
}
class Foo : IFoo{
override var s = "bar"
protected set
get() = field.toUpperCase()
override fun modifyS(){ s = when(s){
"bar" -> "baz"
else -> "bar"
}}
}
我有一种预感,答案是否定的,但是……
有什么办法可以做到这一点?
【问题讨论】:
标签: inheritance kotlin encapsulation getter-setter access-modifiers