Junior — Middle
Ar įmanoma Swift kalboje vienu metu įgyvendinti kelių klasių paveldėjimą?
sobes.tech AI
Atsakymas iš AI
Swift nėra galima paveldėti iš kelių klasių vienu metu, tai yra, daugkartinis klasių paveldėjimas nėra palaikomas. Klasė gali turėti tik vieną tėvą. Vietoj to, Swift naudoja protokolus, kad pasiektų panašią funkcionalumą: klasė gali įgyvendinti kelis protokolus, leidžiančius pridėti įvairių elgsenų ir savybių be daugkartinio paveldėjimo.
Protokolų įgyvendinimo pavyzdys:
protocol Drivable {
func drive()
}
protocol Flyable {
func fly()
}
class Vehicle: Drivable {
func drive() {
print("Važiuoja")
}
}
class FlyingCar: Vehicle, Flyable {
func fly() {
print("Skraido")
}
}
let car = FlyingCar()
car.drive() // Važiuoja
car.fly() // Skraido
Taip Swift skatina sudėtį per protokolus, o ne daugkartinį klasių paveldėjimą.