Junior — Middle
In quale ordine vengono eseguiti i costruttori e gli inizializzatori durante la creazione di un'istanza di una classe?
sobes.tech AI
Risposta dell'AI
Quando si crea un'istanza di una classe in iOS (ad esempio, in Swift), l'ordine di esecuzione è il seguente:
- Prima vengono eseguiti gli inizializzatori di tutte le proprietà dichiarate nella classe (se hanno valori predefiniti).
- Poi viene chiamato il costruttore (inizializzatore) della classe stessa.
- Se la classe eredita da un'altra, prima vengono chiamati gli inizializzatori della superclasse, poi quelli della sottoclasse.
Esempio in Swift:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // prima l'inizializzatore della superclasse
print("Child init")
}
}
let c = Child()
// Output:
// Parent init
// Child init
Pertanto, prima vengono inizializzate le proprietà, poi viene chiamato l'inizializzatore della superclasse, seguito da quello della sottoclasse.