标签: kotlin
我有一个类声明如下:
class NetworkManagerImpl : NetworkManager { }
我想让类保护,以便它只在包内可见。但是当我在课堂前添加受保护时,如:
protected class NetworkManagerImpl : NetworkManager { }
由于修饰符protected不适用于file ,因此会出错 如何解决此错误或更重要的是如何使整个班级(顶级)受到保护?
protected
file
答案 0 :(得分:6)
正如docs所述,对于类等顶级实体,没有protected修饰符。
以下是来自Kotlin团队成员的statement:
没有包受保护访问的动机非常简单:它不提供任何真正的封装。系统中的任何其他模块都可以在与复杂独立组件相同的包中定义类,并获得对其内部的完全访问权限。另一方面,无法从定义它们的模块之外的任何模块访问具有内部可见性的类。