Junior — Middle
In welcher Reihenfolge werden Konstruktoren und Initialisierer bei der Erstellung einer Klasseninstanz ausgeführt?
sobes.tech KI
Antwort von AI
Beim Erstellen einer Instanz einer Klasse in iOS (z.B. in Swift) ist die Ausführungsreihenfolge wie folgt:
- Zuerst werden die Initialisierer aller in der Klasse deklarierten Eigenschaften ausgeführt (falls sie Standardwerte haben).
- Dann wird der Konstruktor (Initialisierer) der Klasse selbst aufgerufen.
- Wenn die Klasse erbt, werden zuerst die Initialisierer der Superklasse aufgerufen, gefolgt von denen der Unterklasse.
Beispiel in Swift:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // zuerst der Initialisierer der Superklasse
print("Child init")
}
}
let c = Child()
// Ausgabe:
// Parent init
// Child init
Daher werden zuerst die Eigenschaften initialisiert, dann wird der Initialisierer der Superklasse aufgerufen, gefolgt von dem der Unterklasse.