Hãy xem xét hai lớp:
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'
}
}
Tôi không hiểu tại sao điều này không được phép. Cuối cùng, khởi tạo được chỉ định của mỗi lớp được gọi với bất kỳ giá trị mà họ cần, vậy tại sao tôi cần phải lặp lại bản thân mình trong B
's init
bằng cách xác định một giá trị mặc định cho x
một lần nữa, khi sự tiện lợi init
trong A
sẽ làm tốt?