Junior — Middle
W jakiej kolejności wykonywane są konstruktory i inicjalizatory podczas tworzenia instancji klasy?
sobes.tech AI
Odpowiedź od AI
Podczas tworzenia instancji klasy w iOS (np. w Swift) kolejność wykonywania jest następująca:
- Najpierw wykonywane są inicjalizatory wszystkich właściwości zadeklarowanych w klasie (jeśli mają wartości domyślne).
- Następnie wywoływany jest konstruktor (inicjalizator) samej klasy.
- Jeśli klasa dziedziczy, najpierw wywoływane są inicjalizatory klasy nadrzędnej, a potem klasy podrzędnej.
Przykład w Swift:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // najpierw inicjalizator klasy nadrzędnej
print("Child init")
}
}
let c = Child()
// Wydruk:
// Parent init
// Child init
W związku z tym, najpierw inicjalizowane są właściwości, następnie wywoływany jest inicjalizator klasy nadrzędnej, a potem klasy podrzędnej.