Junior — Middle
V jakém pořadí se při vytváření instance třídy provádějí konstruktory a inicializátory?
sobes.tech AI
Odpověď od AI
Při vytváření instance třídy v iOS (například ve Swiftu) je pořadí provádění následující:
- Nejprve jsou spuštěny inicializátory všech vlastností deklarovaných ve třídě (pokud mají výchozí hodnoty).
- Poté je volán konstruktor (initializátor) samotné třídy.
- Pokud třída dědí, nejprve jsou volány inicializátory nadtřídy a poté podtřídy.
Příklad ve Swiftu:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // nejprve inicializátor nadtřídy
print("Child init")
}
}
let c = Child()
// Výstup:
// Parent init
// Child init
Tímto způsobem jsou nejprve inicializovány vlastnosti, poté je volán inicializátor nadtřídy a nakonec inicializátor podtřídy.