Sobes.tech
Junior — Middle

Kas Swift keeles on võimalik samaaegselt rakendada mitme klassi pärandamist?

sobes.tech AI

Vastus AI-lt

Swiftis ei saa pärida korraga mitmest klassist, see tähendab, et mitmekordne klassipärimine ei ole toetatud. Klass võib omada ainult ühte vanemat. Selle asemel kasutab Swift protokolle, et saavutada sarnane funktsionaalsus: klass võib rakendada mitmeid protokolle, mis võimaldab lisada erinevaid käitumisi ja omadusi ilma mitmekordse pärimiseta.

Protokollide rakendamise näide:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle: Drivable {
    func drive() {
        print("Sõidab")
    }
}

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

let car = FlyingCar()
car.drive() // Sõidab
car.fly()   // Lennata

Sel viisil soodustab Swift koostööd protokollide kaudu, mitte mitmekordset klassipärimist.