Junior
Povedzte o reťazci dedičstva tried v programovacom jazyku Swift.
sobes.tech AI
Odpoveď od AI
Triedy v Swift podporujú jednoduché dedičstvo. Každá trieda dedí od rodičovskej triedy, čím vzniká hierarchia. Reťazec dedičstva začína základnou triedou, ktorá nezdedí od ničoho, a rozširuje sa nadol cez podtriedy.
Vlastnosti dedičstva:
- Prepisovanie (Overriding): Podtrieda môže prepísať implementáciu metód, vlastností a subskriptov rodičovskej triedy. Používa sa kľúčové slovo
override. - Zamedzenie prepisovania (Preventing Overrides): Je možné zabrániť prepisovaniu člena triedy označením kľúčového slova
final. Celú triedu je možné deklarovať akofinal. - Prístup k rodičovskej triede: Podtrieda môže získať prístup k implementovaným členom rodičovskej triedy pomocou kľúčového slova
super. Toto je užitočné na volanie implementácie rodičovskej metódy alebo prístup k rodičovskej vlastnosti.
Príklad:
// Základná trieda
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Prázdna implementácia
}
}
// Podtrieda, ktorá dedí od Vehicle
class Car: Vehicle {
var numberOfDoors = 4
// Prepisovanie metódy makeNoise
override func makeNoise() {
print("Bip bip")
}
}
// Podtrieda, ktorá dedí od Car
class ElectricCar: Car {
var batteryLevel = 100.0
// Pridanie novej vlastnosti
let isElectric = true
// Prepisovanie vlastnosti z rodičovskej triedy
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Elektrické auto sa pohybuje")
}
}
}
}
V tomto príklade:
Vehicle— základná trieda.Cardedí odVehicle. Pridáva vlastnosťnumberOfDoorsa prepíše metódumakeNoise.ElectricCardedí odCar. Pridáva vlastnosťbatteryLevel, konštantuisElectrica prepíše vlastnosťcurrentSpeed.
Reťazec dedičstva: Vehicle -> Car -> ElectricCar. Každá trieda v tomto reťazci má prístup ku všetkým verejným (alebo v inom kontexte dostupným) členom vyšších tried v hierarchii.