Swift4.0 访问权限

Swift 4.0访问权限关键字

    目前有 open  public  internal  fileprivate  private 这五个访问权限,都可以修饰属性和方法。下面通过例子来分析五个访问权限的使用。


不同点分析:

  • 是否可以被子类继承访问
  • 同文件不同类下是否可以访问
  • 不同文件是否可以被访问
  • 不同组件下是否可以被访问

1、private

被private修饰的属性和方法  ,只可以在该类下使用(extension可使用,因为是同类。)

例如:下面图片,即使在同文件下不同类也是不能调用的,继承的话子类也不能调用。



2、fileprivate

      fileprivate和private 想比较一下,区别一目了然,相同文件下是可以调用的,其他和private一样。

 

3、internal 

 

      默认权限,如果项目没有进行组件化开发,整个APP项目内都是可以访问的。

 

4、public

 可以被任何人访问,但是在其他module中不可以被继承和重写,在当前module内可以


5、open  


  最高权限,可以被任何module和文件访问和继承重写