Назад к вопросам
СБЕР
Junior — Middle
81
В каком порядке происходит выполнение конструкторов и инициализаторов при создании экземпляра класса?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
При создании экземпляра класса в 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
Таким образом, сначала инициализируются свойства, затем вызывается инициализатор суперкласса, потом подкласса.