Junior — Middle
În ce ordine se execută constructorii și inițializatorii la crearea unei instanțe de clasă?
sobes.tech AI
Răspuns de la AI
Când se creează o instanță a unei clase în iOS (de exemplu, în Swift), ordinea de execuție este următoarea:
- Mai întâi, sunt executori initializatorii tuturor proprietăților declarate în clasă (dacă au valori implicite).
- Apoi, se apelează constructorul (initializatorul) clasei în sine.
- Dacă clasa moștenește de la alta, mai întâi sunt apelați initializatorii superclasei, apoi cei ai subclasei.
Exemplu în Swift:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // mai întâi constructorul superclasei
print("Child init")
}
}
let c = Child()
// Ieșire:
// Parent init
// Child init
Prin urmare, mai întâi sunt inițializate proprietățile, apoi se apelează constructorul superclasei, urmat de cel al subclasei.