Sobes.tech
Junior — Middle

Czy można jednocześnie zaimplementować dziedziczenie po wielu klasach w języku Swift?

sobes.tech AI

Odpowiedź od AI

W Swift nie można dziedziczyć jednocześnie po wielu klasach, czyli wielokrotne dziedziczenie klas nie jest obsługiwane. Klasa może mieć tylko jednego rodzica. Zamiast tego Swift używa protokołów, aby osiągnąć podobną funkcjonalność — klasa może implementować wiele protokołów, co pozwala na dodanie różnych zachowań i właściwości bez wielokrotnego dziedziczenia.

Przykład implementacji protokołów:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle: Drivable {
    func drive() {
        print("Jadę")
    }
}

class FlyingCar: Vehicle, Flyable {
    func fly() {
        print("Lecę")
    }
}

let car = FlyingCar()
car.drive() // Jadę
car.fly()   // Lecę

W ten sposób Swift promuje kompozycję poprzez protokoły zamiast wielokrotnego dziedziczenia klas.