Sobes.tech
Back to questions
Junior — Middle
80

В каком порядке происходит выполнение конструкторов и инициализаторов при создании экземпляра класса?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

При создании экземпляра класса в 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

Таким образом, сначала инициализируются свойства, затем вызывается инициализатор суперкласса, потом подкласса.