/**
13.6-重写指定构造方法.mp4
是指“子类中构造方法与父类中的构造方法的参数列表一模一样。”
重写父类中的指定构造方法 加上关键字 override
*/
class Human {
let name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
class Woman: Human {
var haveBaby: Bool = false
// 派生类中定义一个构造方法,它跟父类中的某个指定构造方法一样
override init(name: String, age: Int) {
haveBaby = false
super.init(name: name, age: age)
}
init(name: String, age: Int, haveBaby: Bool) {
self.haveBaby = haveBaby
super.init(name: name, age: age)
}
// 派生类中用便利构造方法重写父类中的指定构造方法
// convenience override init(name: String, age: Int) {
// self.init(name: name, age: age, haveBaby: false)
// }
}