swift 中的访问控制关键字 open, public, internal, fileprivate, private

        访问控制(Access Control)虽是比较基础的知识,但包含规则繁多,本文讲述其中一部分方便大家理解之用。
        swift 中的访问控制模型基于模块(module)和源文件(Source File)这两个概念。模块指的是 Framework 或 App bundle,在 swift 中,可以用 import 关键字引入自己的工程;源文件指的是 swift 中的 Swift File,就是编写 swift 代码的文件,它通常是属于某一个模块。
        swift3 之后访问控制关键字权限从高到低依次包括:open(公开权限)、 public(公有访问权限)、internal(内部权限也是默认权限)、fileprivate(文件私有权限)、private(私有权限)五个,简单做了个表格:


  • open:可以在任何地方被访问、继承、重写。
  • public:可以在任何地方被访问,在其他模块中不能被继承和重写。
  • internal:在整个模块内都可以被访问。
  • fileprivate:其修饰的属性可以再同一个文件被访问、继承和重写,同一个文件指同一个swift文件,一个文件中可以有多个类。
  • private:其修饰的属性和方法只能在本类被访问和使用。