Junior — Middle
Kokiu tvarka vykdomi konstruktoriai ir inicializatoriai kuriant klasės egzempliorių?
sobes.tech AI
Atsakymas iš AI
Kuriant klasės pavyzdį iOS (pavyzdžiui, Swift), vykdymo tvarka yra tokia:
- Pirmiausia vykdomi visų klasėje deklaruotų savybių inicializatoriai (jei jie turi numatytąsias reikšmes).
- Tada kviečiamas pačios klasės konstruktorius (initializatorius).
- Jei klasė paveldi, pirmiausia kviečiami superklasės inicializatoriai, po to – subklasės.
Pavyzdys Swift:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // pirmiausia superklasės inicializatorius
print("Child init")
}
}
let c = Child()
// Išvestis:
// Parent init
// Child init
Taigi, pirmiausia inicijuojamos savybės, tada kviečiamas superklasės inicializatorius, po to – subklasės.