Junior — Middle
Kādos secībā tiek izpildīti konstruktoru un inicializatoru kodu, izveidojot klases piemēru?
sobes.tech AI
Atbilde no AI
Veidojot klasi piemēru iOS (piemēram, Swift), izpildes secība ir šāda:
- Vispirms tiek izpildīti visas klases deklarētās īpašības inicializatori (ja tiem ir noklusējuma vērtības).
- Tad tiek izsaukts pašas klases konstruktors (initializators).
- Ja klase manto, vispirms tiek izsaukti superklases inicializatori, pēc tam – apakšklases.
Piemērs Swift:
class Parent {
var name: String = "Parent"
init() {
print("Parent init")
}
}
class Child: Parent {
var age: Int = 10
override init() {
super.init() // vispirms superklases inicializators
print("Child init")
}
}
let c = Child()
// Izvade:
// Parent init
// Child init
Tādējādi vispirms tiek inicializētas īpašības, tad tiek izsaukts superklases inicializators, un pēc tam – apakšklases.