Junior — Middle
Lehetséges-e több osztály öröklését egyszerre megvalósítani a Swift nyelvben?
sobes.tech MI
Válasz az MI-től
Swiftben nem örökölhet több osztályból egyszerre, azaz a többosztályos öröklés nem támogatott. Egy osztálynak csak egy szülője lehet. Ehelyett a Swift protokollokat használ a hasonló funkcionalitás eléréséhez: egy osztály több protokollt is megvalósíthat, ami lehetővé teszi különböző viselkedések és tulajdonságok hozzáadását anélkül, hogy több öröklést alkalmaznánk.
Protokollok implementációjának példája:
protocol Drivable {
func drive()
}
protocol Flyable {
func fly()
}
class Vehicle: Drivable {
func drive() {
print("Sodródik")
}
}
class FlyingCar: Vehicle, Flyable {
func fly() {
print("Repül")
}
}
let car = FlyingCar()
car.drive() // Sodródik
car.fly() // Repül
Így a Swift a protokollokon keresztüli összetételt ösztönzi a többosztályos öröklés helyett.