为啥我们不能在 kotlin 中将类的可见性标记为“受保护”?
Posted
技术标签:
【中文标题】为啥我们不能在 kotlin 中将类的可见性标记为“受保护”?【英文标题】:Why we cannot mark the visibility of a class as "protected" in kotlin?为什么我们不能在 kotlin 中将类的可见性标记为“受保护”? 【发布时间】:2017-11-07 16:49:45 【问题描述】:我是 kotlin 的新手我最近一直在学习 kotlin 中的继承,然后我意识到我们不能将类的可见性标记为“受保护”。如果我错了,请纠正我,或者有没有其他方法可以保护类?
【问题讨论】:
我假设您的意思是***课程。这怎么可能有意义?将类标记为受保护是什么意思? 可以保护嵌套类,就像在 Java 中一样。 你应该展示一个有确切错误问题的样本,因为你要求的是允许的,所以你必须做一些不同的事情。 【参考方案1】:您可以仅标记类的部分protected
,以便它们只能从派生类访问。您可以将protected
标记为成员属性、成员函数或嵌套类:
open class X
protected val v: SomeType = someValue
protected fun f()
protected class Y ...
但是你不能标记protected
任何不属于类的东西(例如***类或函数),因为修饰符没有意义:***实体不受继承,因此有不能是可以访问它的派生类。
【讨论】:
以上是关于为啥我们不能在 kotlin 中将类的可见性标记为“受保护”?的主要内容,如果未能解决你的问题,请参考以下文章