Розглянемо два класи:
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
«S init
, вказавши значення за замовчуванням для x
знову, коли зручність init
в A
робитиме тільки штраф?