Junior — Middle
Σε ποια σειρά εκτελούνται οι κατασκευαστές και οι αρχικοποιητές κατά τη δημιουργία ενός στιγμιότυπου κλάσης;
sobes.tech AI
Απάντηση από AI
Όταν δημιουργείτε ένα στιγμιότυπο κλάσης σε iOS (για παράδειγμα, σε Swift), η σειρά εκτέλεσης είναι η εξής:
- Πρώτα εκτελούνται οι αρχικοποιητές όλων των ιδιοτήτων που έχουν δηλωθεί στην κλάση (εάν έχουν προεπιλεγμένες τιμές).
- Στη συνέχεια, καλείται ο κατασκευαστής (initializer) της ίδιας της κλάσης.
- Αν η κλάση κληρονομεί από άλλη, πρώτα καλούνται οι αρχικοποιητές της υπερκλάσης και μετά αυτοί της υποκλάσης.
Παράδειγμα σε 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
Έτσι, αρχικά αρχικοποιούνται οι ιδιότητες, στη συνέχεια καλείται ο αρχικοποιητής της υπερκλάσης και τέλος αυτός της υποκλάσης.