13.2 Swift派生类的构造方法
/** 13.2-派生类的构造方法.mp4 */
class AB { var a: Int var b: Int
// 指定构造方法,不允许出现构造器代理,self.init(...) init(a: Int,b: Int) { self.a = a self.b = b print("Class AB init!") }
// 便利构造方法 一定是通过调用其它的构造方法来实现初始化 self.init convenience init(a: Int) { // self.a = a // b = 0
self.init(a: a,b: 0) }
convenience init(b: Int) { // self.init(a: 2,b: 0) self.init(a: 8) } }
class CD: AB { var c: Int var d: Int
// 指定构造器 Designated // 构造方法默认不会被继承,基类的存储属性只能通过基类的构造方法来初始化 init(c: Int,d: Int) {
// 派生类的引入的存储属性要先被初始化,然后在调用父类的构造方法对父类的属性进行初始化 self.c = c self.d = d
// 基类的存储属性 super.init(a: 0,b: 0)
// 只能调用基类的指定(Designated)构造方法来对基类的属性进行初始化,不能调用便利(Convenience)构造方法 // super.init(b: 0) }
convenience init(a: Int,b: Int,c: Int,d:Int) { self.init(c: c,d: d) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 使用foreach的IndexOutOfRangeException
- Cocos2d-x TextAtlas的使用
- PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scienti
- Xcode 5.1 / iOS 7.1中的单元测试问题:BKSEventFocusManag
- 快速了解swift3.0
- ruby-on-rails – rails 3.2.8 ruby?? 1.9.3 on DreamHost共
- c# – private int? _City_Id;任何人都可以告诉我“?”在
- 添加JFace依赖
- rubygems – ruby??gem“参数列表太长”
- 用C语言的泛型实现交换两个变量值