为什么我们不能在 kotlin 中将 class 的可见性标记为 "protected"?
Why we cannot mark the visibility of a class as "protected" in kotlin?
我是kotlin新手 最近一直在学习kotlin中的继承,然后我意识到我们不能将class的可见性标记为"protected"。如果我错了请纠正我,或者有没有其他方法可以使 class 受保护?
您只能标记 protected
部分 classes,这样它们就只能从派生的 classes 中访问。您可以将 protected
标记为成员 属性、成员函数或嵌套 class:
open class X {
protected val v: SomeType = someValue
protected fun f() { }
protected class Y { ... }
}
但是你不能标记 protected
任何不属于 class 的东西(例如顶级 class 或函数),因为修饰符没有意义:a顶级实体不受继承影响,因此不存在可以访问它的派生 class。
我是kotlin新手 最近一直在学习kotlin中的继承,然后我意识到我们不能将class的可见性标记为"protected"。如果我错了请纠正我,或者有没有其他方法可以使 class 受保护?
您只能标记 protected
部分 classes,这样它们就只能从派生的 classes 中访问。您可以将 protected
标记为成员 属性、成员函数或嵌套 class:
open class X {
protected val v: SomeType = someValue
protected fun f() { }
protected class Y { ... }
}
但是你不能标记 protected
任何不属于 class 的东西(例如顶级 class 或函数),因为修饰符没有意义:a顶级实体不受继承影响,因此不存在可以访问它的派生 class。