Junior — Middle
V akom poradí sa vykonávajú konštruktory a inicializátory pri vytváraní inštancie triedy?
sobes.tech AI
Odpoveď od AI
Pri ustvarjanju primerka razreda v iOS (na primer, v Swiftu) je vrstni red izvajanja naslednji:
- Najprej se izvedejo inicializatorji vseh lastnosti, deklariranih v razredu (če imajo privzete vrednosti).
- Nato se pokliče konstruktor (initializator) samega razreda.
- Če razred deduje, se najprej pokličejo inicializatorji nadrazreda, nato pa podrazreda.
Primer v Swiftu:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // najprej inicializator nadrazreda
print("Child init")
}
}
let c = Child()
// Izhod:
// Parent init
// Child init
Tako se najprej inicializirajo lastnosti, nato pa se pokliče inicializator nadrazreda, sledijo pa inicializatorji podrazreda.