Junior — Middle
U kom redu se izvršavaju konstruktori i inicijalizatori prilikom kreiranja instance klase?
sobes.tech АИ
Одговор од АИ
Када креирате инстанцу класе у iOS-у (на пример, у Swift-у), редослед извршавања је следећи:
- Прво се извршавају иницијализатори свих својстава проглашених у класи (ако имају подразумеване вредности).
- Затим се позива конструктор (иницијализатор) саме класе.
- Ако класа наследи од друге, прво се позивају иницијализатори суперкласе, а потом подкласе.
Пример у Swift-у:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // прво иницијализатор суперкласе
print("Child init")
}
}
let c = Child()
// Излаз:
// Parent init
// Child init
Дакле, прво се иницијализују својства, затим се позива иницијализатор суперкласе, а потом подкласе.