Sobes.tech
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:

  1. Vispirms tiek izpildīti visas klases deklarētās īpašības inicializatori (ja tiem ir noklusējuma vērtības).
  2. Tad tiek izsaukts pašas klases konstruktors (initializators).
  3. 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.