Private、FilePrivate、Public、open
四大属性的使用范围图:
private 修饰符
- 只允许在当前类中调用,不包括 Extension
- private 现在变为了真正的私有访问控制
- 用 private 修饰的方法不可以被代码域之外的地方访问
fileprivate 修饰符
- fileprivate 其实就是过去的 private。
- 其修饰的属性或者方法只能在当前的 Swift 源文件里可以访问。
- 即在同一个文件中,所有的 fileprivate 方法属性都是可以访问到的。
1 class A { 2 fileprivate func test(){ 3 print("this is fileprivate func!") 4 } 5 } 6 7 class B:A { 8 func show(){ 9 test() 10 } 11 }
public 修饰符
- 修饰的属性或者方法可以在其他作用域被访问
- 但不能在重载 override 中被访问
- 也不能在继承方法中的 Extension 中被访问
open 修饰符
open 其实就是过去的 public,过去 public 有两个作用:
- 修饰的属性或者方法可以在其他作用域被访问
- 修饰的属性或者方法可以在其他作用域被继承或重载 override