Junior
Αναφέρετε τη σειρά κληρονόμησης κλάσεων στη γλώσσα προγραμματισμού Swift.
sobes.tech AI
Απάντηση από AI
Οι κλάσεις σε Swift υποστηρίζουν απλή κληρονομιά. Κάθε κλάση κληρονομεί από μια γονική κλάση, σχηματίζοντας μια ιεραρχία. Η αλυσίδα κληρονομιάς ξεκινάει από μια βασική κλάση που δεν κληρονομεί από τίποτα και επεκτείνεται προς τα κάτω μέσω των παιδικών κλάσεων.
Ιδιότητες κληρονομιάς:
- Υπερκαλύπτοντας (Overriding): Η παιδική κλάση μπορεί να υπερκαλύψει την υλοποίηση μεθόδων, ιδιοτήτων και υπο-σκριπτών της γονικής κλάσης. Χρησιμοποιείται η λέξη-κλειδί
override. - Πρόληψη υπερκαλύψεων (Preventing Overrides): Μπορεί να αποτραπεί η υπερκαλύψη ενός μέλους της κλάσης σημειώνοντάς το με τη λέξη-κλειδί
final. Ολόκληρη η κλάση μπορεί να δηλωθεί ωςfinal. - Πρόσβαση στη γονική κλάση: Η παιδική κλάση μπορεί να έχει πρόσβαση στα υλοποιημένα μέλη της γονικής κλάσης χρησιμοποιώντας τη λέξη-κλειδί
super. Αυτό είναι χρήσιμο για την κλήση υλοποίησης μιας μεθόδου της γονικής κλάσης ή την πρόσβαση σε μια ιδιότητα της γονικής.
Παράδειγμα:
// Βασική κλάση
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Κενή υλοποίηση
}
}
// Παιδική κλάση που κληρονομεί από το Vehicle
class Car: Vehicle {
var numberOfDoors = 4
// Υπερκαλύπτοντας τη μέθοδο makeNoise
override func makeNoise() {
print("Beep beep")
}
}
// Παιδική κλάση που κληρονομεί από το Car
class ElectricCar: Car {
var batteryLevel = 100.0
// Προσθήκη νέας ιδιότητας
let isElectric = true
// Υπερκαλύπτοντας την ιδιότητα της βασικής κλάσης
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Η ηλεκτρική αυτοκινητο κινείται")
}
}
}
}
Σε αυτό το παράδειγμα:
Vehicle— βασική κλάση.Carκληρονομεί από τοVehicle. Προσθέτει την ιδιότηταnumberOfDoorsκαι υπερκαλύπτει τη μέθοδοmakeNoise.ElectricCarκληρονομεί από τοCar. Προσθέτει την ιδιότηταbatteryLevel, τη σταθεράisElectricκαι υπερκαλύπτει την ιδιότηταcurrentSpeed.
Η αλυσίδα κληρονομιάς: Vehicle -> Car -> ElectricCar. Κάθε κλάση σε αυτήν την αλυσίδα έχει πρόσβαση σε όλα τα δημόσια (ή προσβάσιμα σε άλλο πλαίσιο) μέλη των ανώτερων κλάσεων στην ιεραρχία.