Swift 学习笔记 [3] 类 重载和构造器
发布时间:2020-12-14 06:28:59 所属栏目:百科 来源:网络整理
导读:类继承方法重载 可使用 override 修饰 被重写的方法 父类的属性(存储、计算属性均可override) 属性观察者 父类的下标 final 关键字 用final 防止重写,final关键字可以修饰类、属性、方法和下标。 final 不可以修饰方法中的局部变量,也不能修饰全局变量。
类继承方法重载可使用 override 修饰
final 关键字
构造器类的两种构造器init(形参){}
构造器链
两段式构造Swift类的构造要两个阶段完成 第一阶段: 为存储属性分配内容,使用本类构造器初始化由本类定义的存储属性
第二阶段: 从最顶层父类开始,沿着顶部构造器链往下,每个构造器都可再次修改存储属性。
这个流程解决的问题
Swift内部检查
我对构造器的理解:1. 指定构造器:最原始可以完成初始化的方法
2. 便利构造器:在指定构造器基础上方便定制化的一些方法,最终还是依赖指定构造器。
这样可以方便理解构造器链。
构造阶段,基本原则 1. 准确性(赋值了就一定得到赋值的操作结果,无二义性)
2. 顺应类继承关系。
3. 如果一个对象没有初始化,对它属性操作就是非法的。
结合第一阶段和第二阶段构造,再参考内部检查就容易理解了
构造器的继承和重写
四种情况子类指定 <- 父类指定 Y 结论:
可能失败的构造器可能失败的构造器的传播 子类必须包含的构造器定义:申明所有子类必须包含该require构造器(指定和便利均可),表示为 require init() {} 析构器deinit 方法,没有返回值,没有参数,所以不能重载 deinit { } swift 会自己调用父类的deinit方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |