Junior
Ispričajte o lancu nasleđivanja klasa u programskom jeziku Swift.
sobes.tech АИ
Одговор од АИ
Klase u Swift podržavaju jednostavno nasleđivanje. Svaka klasa nasleđuje od roditeljske klase, formirajući hijerarhiju. Lanac nasleđivanja počinje sa osnovnom klasom koja ne nasleđuje od ničega, i širi se naniže kroz podklase.
Svojstva nasleđivanja:
- Prepisivanje (Overriding): Podklasa može prepisati implementaciju metoda, svojstava i podskripti roditeljske klase. Koristi se ključna reč
override. - Sprječavanje prepisivanja (Preventing Overrides): Može se sprečiti prepisivanje člana klase označavanjem sa ključnom rečju
final. Celokupna klasa može biti deklarisana kaofinal. - Pristup roditeljskoj klasi: Podklasa može pristupiti implementiranim članovima roditeljske klase pomoću ključne reči
super. Ovo je korisno za pozivanje implementacije roditeljske metode ili pristup roditeljskoj svojstvu.
Primer:
// Osnovna klasa
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Prazna implementacija
}
}
// Podklasa koja nasleđuje od Vehicle
class Car: Vehicle {
var numberOfDoors = 4
// Prepisivanje metode makeNoise
override func makeNoise() {
print("Bip bip")
}
}
// Podklasa koja nasleđuje od Car
class ElectricCar: Car {
var batteryLevel = 100.0
// Dodavanje nove svojstva
let isElectric = true
// Prepisivanje svojstva iz roditeljske klase
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Električni auto se kreće")
}
}
}
}
U ovom primeru:
Vehicle— osnovna klasa.Carnasleđuje odVehicle. Dodaje svojstvonumberOfDoorsi prepisuje metodumakeNoise.ElectricCarnasleđuje odCar. Dodaje svojstvobatteryLevel, konstantuisElectrici prepisuje svojstvocurrentSpeed.
Lanac nasleđivanja: Vehicle -> Car -> ElectricCar. Svaka klasa u ovom lancu ima pristup svim javnim (ili dostupnim u drugom kontekstu) članovima viših klasa u hijerarhiji.