Junior
Parla della catena di ereditarietà delle classi nel linguaggio di programmazione Swift.
sobes.tech AI
Risposta dell'AI
Le classi in Swift supportano l'ereditarietà semplice. Ogni classe eredita da una classe genitore, formando una gerarchia. La catena di ereditarietà inizia con una classe base, che non eredita da nulla, e si estende verso il basso attraverso le classi figlie.
Proprietà dell'ereditarietà:
- Override (Sovrascrittura): La classe figlia può sovrascrivere l'implementazione di metodi, proprietà e subscript della classe genitore. Si utilizza la parola chiave
override. - Prevenire le sovrascritture (Preventing Overrides): È possibile impedire la sovrascrittura di un membro della classe contrassegnandolo con la parola chiave
final. L'intera classe può essere dichiarata comefinal. - Accesso alla classe genitore: La classe figlia può accedere ai membri implementati della classe genitore usando la parola chiave
super. Questo è utile per chiamare l'implementazione di un metodo della classe genitore o accedere a una proprietà del genitore.
Esempio:
// Classe di base
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Implementazione vuota
}
}
// Classe figlia che eredita da Vehicle
class Car: Vehicle {
var numberOfDoors = 4
// Sovrascrittura del metodo makeNoise
override func makeNoise() {
print("Beep beep")
}
}
// Classe figlia che eredita da Car
class ElectricCar: Car {
var batteryLevel = 100.0
// Aggiunta di una nuova proprietà
let isElectric = true
// Sovrascrittura della proprietà della classe base
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("L'auto elettrica si muove")
}
}
}
}
In questo esempio:
Vehicle— classe base.Careredita daVehicle. Aggiunge la proprietànumberOfDoorse sovrascrive il metodomakeNoise.ElectricCareredita daCar. Aggiunge la proprietàbatteryLevel, la costanteisElectrice sovrascrive la proprietàcurrentSpeed.
Catena di ereditarietà: Vehicle -> Car -> ElectricCar. Ogni classe in questa catena ha accesso a tutti i membri pubblici (o accessibili in altri contesti) delle classi superiori nella gerarchia.