/**@H_301_5@
13.7-关于便利构造方法“重写”的讨论.mp4@H_301_5@
@H_301_5@
Swift语言中便利构造方法不能重写。因为它是横向的@H_301_5@
*/@H_301_5@
@H_301_5@
@H_301_5@
class Human {@H_301_5@
let name: String@H_301_5@
var age: Int@H_301_5@
init(name: String,age: Int) {@H_301_5@
self.name = name@H_301_5@
self.age = age@H_301_5@
}@H_301_5@
@H_301_5@
convenience init() {@H_301_5@
self.init(name: "",age: 0)@H_301_5@
}@H_301_5@
@H_301_5@
}@H_301_5@
@H_301_5@
class Woman: Human {@H_301_5@
var haveBaby: Bool = false@H_301_5@
@H_301_5@
// 派生类中定义一个构造方法,它跟父类中的某个指定构造方法一样@H_301_5@
// override init(name: String,age: Int) {@H_301_5@
// haveBaby = false@H_301_5@
// super.init(name: name,age: age)@H_301_5@
// }@H_301_5@
@H_301_5@
init(name: String,age: Int,haveBaby: Bool) {@H_301_5@
self.haveBaby = haveBaby@H_301_5@
super.init(name: name,age: age)@H_301_5@
}@H_301_5@
@H_301_5@
// 派生类中用便利构造方法重写父类中的指定构造方法@H_301_5@
// convenience override init(name: String,0)"> // self.init(name: name,age: age,haveBaby: false)@H_301_5@
// }@H_301_5@
@H_301_5@
// Initializer does not override a designated initializer from its superclass,在Swift语言便利构造方法中不存在重写@H_301_5@
// convenience override init() {@H_301_5@
// self.init(name: "",age: 0,0)"> // }@H_301_5@
@H_301_5@
convenience init() {@H_301_5@
self.init(name: "",age: 0,haveBaby: false)@H_301_5@
}@H_301_5@
}@H_301_5@
@H_301_5@
@H_301_5@
var w0 = Woman.init(name: "d",haveBaby: true)@H_301_5@
@H_301_5@
var w1 = Woman.init()@H_301_5@
@H_301_5@