【发布时间】:2016-06-24 17:43:35
【问题描述】:
我正在学习 The Swift Programming Languages 中的以下章节:
如果您的子类没有定义任何指定的初始化器,它会自动继承其所有超类的指定初始化器。
然后我在我的目标中尝试了这些代码:
class Car {
var name: String = "Unknown"
init(name: String) {
self.name = name
}
}
class RacingCar: Car {
var speed = 0.0
init(name: String, speed: Double) {
self.speed = speed
super.init(name: name)//this is where I got confused
}
}
根据规则一,RacingCar 类不会从其超类 Car 继承 init(name:) 指定的初始化程序。但是,我仍然可以在我的子类中调用 super.init(name:)。怎么会这样?我对此感到很困惑。谁能解释为什么?谢谢。
【问题讨论】:
标签: swift inheritance super initializer