Sobes.tech
Junior — Middle

U kom redu se izvršavaju konstruktori i inicijalizatori prilikom kreiranja instance klase?

sobes.tech АИ

Одговор од АИ

Када креирате инстанцу класе у iOS-у (на пример, у Swift-у), редослед извршавања је следећи:

  1. Прво се извршавају иницијализатори свих својстава проглашених у класи (ако имају подразумеване вредности).
  2. Затим се позива конструктор (иницијализатор) саме класе.
  3. Ако класа наследи од друге, прво се позивају иницијализатори суперкласе, а потом подкласе.

Пример у 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

Дакле, прво се иницијализују својства, затим се позива иницијализатор суперкласе, а потом подкласе.