Sobes.tech
Junior — Middle

Дар кадом тартиб иҷрои конструкторҳо ва оғозкунандагон ҳангоми эҷоди намунаи синф?

sobes.tech AI

Ҷавоб аз 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

Бинобар ин, аввал хосиятҳо инициализатсия мешаванд, сипас инициализатори суперкласс даъват мешавад ва дар охир инициализатори субкласс.