修饰符`protected`不适用于Kotlin中的`file`错误

时间:2018-03-27 04:55:09

标签: kotlin

我有一个类声明如下:

class NetworkManagerImpl : NetworkManager { }

我想让类保护,以便它只在包内可见。但是当我在课堂前添加受保护时,如:

protected class NetworkManagerImpl : NetworkManager { }

由于修饰符protected不适用于file ,因此会出错 如何解决此错误或更重要的是如何使整个班级(顶级)受到保护?

1 个答案:

答案 0 :(得分:6)

正如docs所述,对于类等顶级实体,没有protected修饰符。

以下是来自Kotlin团队成员的statement

  

没有包受保护访问的动机非常简单:它不提供任何真正的封装。系统中的任何其他模块都可以在与复杂独立组件相同的包中定义类,并获得对其内部的完全访问权限。另一方面,无法从定义它们的模块之外的任何模块访问具有内部可见性的类。