Sobes.tech
Junior — Middle

Swift tilida bir nechta sinflar yoki protokollar meros olish qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Swift'da, bir sinif yalnızca bir üst sinifdən miras ala bilər, yəni çoxlu miras alma dəstəklənmir. Ancaq, oxşar effekti əldə etmək üçün, bir sinifin miras alınması və bir neçə protokolun tətbiqi istifadə olunur. Swift-də protokollar, bir sinif, struktur və ya enumerasiya tərəfindən yerinə yetirilməsi lazım olan tələblər (metodlar, xüsusiyyətlər) toplusunu müəyyən edir. Beləliklə, bir sinif həm üst sinifindən davranış miras ala bilər, həm də eyni zamanda bir neçə protokola uyğunlaşa bilər, bu da funksionallığın birləşdirilməsinə imkan verir.

Nümunə:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Nəqliyyat başladı")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Yolda sürmək")
    }
    
    func fly() {
        print("Göydə uçmaq")
    }
}

let myFlyingCar = FlyingCar()
myFlyingCar.start()  // Nəqliyyat başladı
myFlyingCar.drive()  // Yolda sürmək
myFlyingCar.fly()    // Göydə uçmaq

Beləliklə, çoxlu miras alma, bir sinifin miras alınması və bir neçə protokolun tətbiqi ilə əldə edilir.