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

Այսպիսով, նախ ինիցիալիզացվում են հատկությունները, ապա կանչվում է սուպերակլասի ինիցիալիզատորը, հետո՝ ենթակլասի։