考虑一下这两个类:
class A {
var x: Int
init(x: Int) {
self.x = x
}
convenience init() {
self.init(x: 0)
}
}
class B: A {
init() {
super.init() // Error: Must call a designated initializer of the superclass 'A'
}
}
我不明白为什么不能这么做。最终,每个类的指定的初始化器被调用任何值,所以为什么我需要在 B
的 init
中重复自己,再次为 x
指定一个默认值,而 A
中的方便 init
就可以了?