Junior — Middle
Vai Swift valodā ir iespējams vienlaikus realizēt vairākas klases mantošanu?
sobes.tech AI
Atbilde no AI
Swift nav iespējams manto vairākas klases vienlaikus, tas ir, daudzklasšu mantošana netiek atbalstīta. Klase var būt tikai viena vecāka. Tā vietā Swift izmanto protokolus, lai sasniegtu līdzīgu funkcionalitāti: klase var īstenot vairākus protokolus, kas ļauj pievienot dažādas uzvedības un īpašības bez daudzklasšu mantošanas.
Protokolu īstenošanas piemērs:
protocol Drivable {
func drive()
}
protocol Flyable {
func fly()
}
class Vehicle: Drivable {
func drive() {
print("Brauc")
}
}
class FlyingCar: Vehicle, Flyable {
func fly() {
print("Lido")
}
}
let car = FlyingCar()
car.drive() // Brauc
car.fly() // Lido
Tādējādi Swift veicina sastāvu caur protokoliem, nevis daudzklasšu mantošanu.