Junior
Erzählen Sie über die Vererbungsreihe von Klassen in der Programmiersprache Swift.
sobes.tech KI
Antwort von AI
Klassen in Swift unterstützen einfache Vererbung. Jede Klasse erbt von einer Elternklasse und bildet eine Hierarchie. Die Vererbungskette beginnt mit einer Basisklasse, die von nichts erbt, und erstreckt sich nach unten durch die Kindklassen.
Eigenschaften der Vererbung:
- Überschreiben (Overriding): Die Kindklasse kann die Implementierung von Methoden, Eigenschaften und Subscripts der Elternklasse überschreiben. Das Schlüsselwort
overridewird verwendet. - Verhindern von Überschreibungen (Preventing Overrides): Es ist möglich, die Überschreibung eines Members der Klasse zu verhindern, indem man es mit dem Schlüsselwort
finalkennzeichnet. Die gesamte Klasse kann alsfinaldeklariert werden. - Zugriff auf die Elternklasse: Die Kindklasse kann auf die implementierten Mitglieder der Elternklasse mit dem Schlüsselwort
superzugreifen. Dies ist nützlich, um die Implementierung einer Elternmethode aufzurufen oder auf eine Elternproperty zuzugreifen.
Beispiel:
// Basisklasse
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Leere Implementierung
}
}
// Kindklasse, die von Vehicle erbt
class Car: Vehicle {
var numberOfDoors = 4
// Überschreiben der Methode makeNoise
override func makeNoise() {
print("Piept")
}
}
// Kindklasse, die von Car erbt
class ElectricCar: Car {
var batteryLevel = 100.0
// Hinzufügen einer neuen Eigenschaft
let isElectric = true
// Überschreiben der Eigenschaft aus der Basisklasse
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Elektroauto ist in Bewegung")
}
}
}
}
In diesem Beispiel:
Vehicle— Basisklasse.Carerbt vonVehicle. Es fügt die EigenschaftnumberOfDoorshinzu und überschreibt die MethodemakeNoise.ElectricCarerbt vonCar. Es fügt die EigenschaftbatteryLevelhinzu, die KonstanteisElectricund überschreibt die EigenschaftcurrentSpeed.
Verkettung der Vererbung: Vehicle -> Car -> ElectricCar. Jede Klasse in dieser Kette hat Zugriff auf alle öffentlichen (oder in anderem Kontext zugänglichen) Mitglieder der übergeordneten Klassen in der Hierarchie.