Junior — Middle
Ի՞նչ կարգով են կատարվում կոնստրուկտորներն ու ինիցիալիզատորները դասի օրինակ ստեղծելիս։
sobes.tech AI
Պատասխան 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
Այսպիսով, նախ ինիցիալիզացվում են հատկությունները, ապա կանչվում է սուպերակլասի ինիցիալիզատորը, հետո՝ ենթակլասի։