Sobes.tech
Junior — Middle

In welke volgorde worden de constructors en initializers uitgevoerd bij het maken van een instantie van een klasse?

sobes.tech AI

Antwoord van AI

Bij het maken van een instantie van een klasse in iOS (bijvoorbeeld in Swift) is de volgorde van uitvoering als volgt:

  1. Eerst worden de initialisatoren van alle eigenschappen die in de klasse zijn gedeclareerd (als ze standaardwaarden hebben) uitgevoerd.
  2. Vervolgens wordt de constructor (initialisator) van de klasse zelf aangeroepen.
  3. Als de klasse erft, worden eerst de initialisatoren van de superklasse aangeroepen, gevolgd door die van de subklasse.

Voorbeeld in Swift:

class Parent {
    var name: String = "Parent"
    init() {
        print("Parent init")
    }
}

class Child: Parent {
    var age: Int = 10
    override init() {
        super.init() // eerst de initialisator van de superklasse
        print("Child init")
    }
}

let c = Child()
// Uitvoer:
// Parent init
// Child init

Dus, eerst worden de eigenschappen geïnitialiseerd, daarna wordt de initialisator van de superklasse aangeroepen, gevolgd door die van de subklasse.