Swift修饰符整理
访问权限修饰词
-
private:private 访问级别所修饰的属性或者方法只能在当前类里访问。(注意:Swift4 中,extension 里也可以访问 private 的属性。)
-
fileprivate 访问级别所修饰的属性或者方法在当前的 Swift 源文件里可以访问。(比如上面样例把 private 改成 fileprivate 就不会报错了)
-
internal(默认访问级别,internal修饰符可写可不写)
- internal 访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
- 如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。
- 如果是 App 代码,也是在整个 App 代码,也是在整个 App 内部可以访问。
-
public 可以被任何人访问。但其他 module 中不可以被 override 和继承,而在 module 内可以被 override 和继承。
-
open 可以被任何人使用,包括 override 和继承。
5种修饰符访问权限排序,从高到低排序如下:
open > public > interal > fileprivate > private
面向对象修饰词
1、override 继承父类
基于现有的类创建新的类,子类从现有的类继承一些特征,可以重新定义他们,也可以为子类添加新的特征。子类写在父类前面,使用冒号分隔。
重写:override关键字,没写会报错。
访问父类:super前缀。
重写属性观察器:可以为继承来的属性重写属性观察器,这样就可以让你继承的属性值发生改变的时候得到通知。不能同时重写setter和属性观察器。
2、final
阻止重写:final标记阻止被重写。