Junior — Middle
Dans quel ordre s'exécutent les constructeurs et initialisateurs lors de la création d'une instance de classe?
sobes.tech IA
Réponse de l'IA
Lors de la création d'une instance de classe en iOS (par exemple, en Swift), l'ordre d'exécution est le suivant :
- Tout d'abord, les initialisateurs de toutes les propriétés déclarées dans la classe (si elles ont des valeurs par défaut) sont exécutés.
- Ensuite, le constructeur (initialisateur) de la classe elle-même est appelé.
- Si la classe hérite d'une autre, les initialisateurs de la superclasse sont appelés en premier, puis ceux de la sous-classe.
Exemple en Swift :
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // d'abord l'initialisateur de la superclasse
print("Child init")
}
}
let c = Child()
// Sortie :
// Parent init
// Child init
Ainsi, les propriétés sont initialisées en premier, puis l'initialisateur de la superclasse est appelé, suivi de celui de la sous-classe.