swift3.0以后,访问控制关键字一共有5中,控制权限范围从高到低依次为
open > public > internal > fileprivate > private
1、open(开放的)
访问权限最高的一个,可以被任何人访问,override以及继承,不限制范围.好多系统库的属性都有open修饰的
2、public(公共使用)
仅次于open范围,也是可以被任何人访问,但是只限在同一module下才能被override和继承.好多系统库协议的函数都有public修饰的
3、internal(内部的,默认)
默认的权限范围,即不写的时候默认是internal修饰的。在同一module可以访问。
4、fileprivate(file+private)
同一个swift源文件下可以访问,一个.swift文件下,不同类之间是可以访问的.
4、private
权限范围最低的,只能在当前类里面访问,分类也不行.
注: 低级别权限范围修饰的类别里面不能包含比之高级别的修饰。例如:internal修饰的类里面不能包含public修饰的属性和函数等。
注:module,一个app就是一个模块,一个第三方框架,第三发APi,第三方库,framework都是一个模块
final关键字,用来修饰类,属性和方法函数, 被final修饰的不能被继承和override,用来做权限控制.