Sobes.tech
Junior — Middle

Σε ποια σειρά εκτελούνται οι κατασκευαστές και οι αρχικοποιητές κατά τη δημιουργία ενός στιγμιότυπου κλάσης;

sobes.tech AI

Απάντηση από AI

Όταν δημιουργείτε ένα στιγμιότυπο κλάσης σε iOS (για παράδειγμα, σε Swift), η σειρά εκτέλεσης είναι η εξής:

  1. Πρώτα εκτελούνται οι αρχικοποιητές όλων των ιδιοτήτων που έχουν δηλωθεί στην κλάση (εάν έχουν προεπιλεγμένες τιμές).
  2. Στη συνέχεια, καλείται ο κατασκευαστής (initializer) της ίδιας της κλάσης.
  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

Έτσι, αρχικά αρχικοποιούνται οι ιδιότητες, στη συνέχεια καλείται ο αρχικοποιητής της υπερκλάσης και τέλος αυτός της υποκλάσης.