Junior — Middle
В какъв ред се изпълняват конструкторите и инициализаторите при създаването на екземпляр на клас?
sobes.tech AI
Отговор от AI
Когато създавате екземпляр на клас в iOS (например, в Swift), редът на изпълнение е следният:
- Първо се изпълняват инициализаторите на всички свойства, обявени в класа (ако имат стойности по подразбиране).
- След това се извиква конструкторът (инициализаторът) на самия клас.
- Ако класът наследява, първо се извикват инициализаторите на суперкласа, а след това на подкласовете.
Пример в Swift:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // първо инициализаторът на суперкласа
print("Child init")
}
}
let c = Child()
// Изход:
// Parent init
// Child init
По този начин първо се инициализират свойствата, след това се извиква инициализаторът на суперкласа, а след това на подкласовете.