Sobes.tech
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:

  1. Zuerst werden die Initialisierer aller in der Klasse deklarierten Eigenschaften ausgeführt (falls sie Standardwerte haben).
  2. Dann wird der Konstruktor (Initialisierer) der Klasse selbst aufgerufen.
  3. 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.