Sobes.tech
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.