为什么我们不能在 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。