关于类型访问控制关键字有 public
,open
, internal
、fileprivate
、private
。
- 默认情况下是
internal
,允许实体被定义模块中的任何源文件访问,但不能被该模块之外的任何源文件访问,通常定义在应用程序或框架的内部结构时使用 fileprivate
访问将实体的使用限制于当前定义源文件中,当一些细节在整个文件中使用时,使用fileprivate
访问隐藏特性功能的实现细节。使用fileprivate
修饰方法 是可以被重写的。但是类不可以被继承!



private
将实体的使用限制于封闭声明中,当一些细节仅在单独声明中使用,使用private
访问细节特性功能的实现细节。使用private
修饰的方法,子类不可以重写,但是子类的方法名与父类的方法名相同是不会报错的

open
访问是最高访问级别,private
是最低级别
public
和open
都是访问控制级别,用来控制别人能不能访问你的代码。
public
:别人可以使用你的类或方法,但不能继承或重写open
:别人可以使用你的类或方法,也可以继承和重写
一句话总结:open
= public
+ 允许继承和重写。