Sobes.tech
Junior — Middle
107

Класс мысалын жасағанда конструкторлар мен инициализаторлар қандай тәртіппен орындалады?

Сұралған компаниялар
СБЕРСБЕР

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

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