为什么我们不能在kotlin中将类的可见性标记为"受保护"?

Sau*_*shi 1 visibility class protected access-modifiers kotlin

我是kotlin的新手我最近在kotlin学习了继承,然后我意识到我们不能将类的可见性标记为"受保护".如果我错了,请纠正我,还是有其他办法让班级得到保护?

hot*_*key 5

您只能标记protected类的一部分,以便只能从派生类访问它们.您可以标记protected成员属性,成员函数或嵌套类:

open class X {
    protected val v: SomeType = someValue
    protected fun f() { }
    protected class Y { ... }
}
Run Code Online (Sandbox Code Playgroud)

但是你不能标记protected任何不属于类的东西(例如顶级类或函数),因为修饰符没有意义:顶级实体不受继承的约束,因此不存在派生类会访问它.