Sobes.tech
Junior — Middle

Swift tilida ko‘p meroslikni amalga oshirish mumkinmi?

sobes.tech AI

AIdan javob

Swift tilida ko‘p meroslik (multiple inheritance) qo‘llab-quvvatlanmaydi. Bir sinf faqat bitta superklassdan meros olishi mumkin. Biroq, Swift protokollar yordamida ko‘p meroslikka o‘xshash funksionallikni amalga oshirish imkoniyatini taqdim etadi.

Protokollar sinf, struktur yoki enum uchun bajarilishi kerak bo‘lgan metodlar va xususiyatlar to‘plamini tasvirlashga imkon beradi. Bir sinf bir nechta protokolga mos kelishi mumkin, shuning bilan turli xulq-atvorlarni birlashtiradi.

Misol:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Transport boshladi")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Yo‘lda haydash")
    }
    
    func fly() {
        print("Osmonda uchish")
    }
}

Shu tarzda, Swift ko‘p meroslik o‘rniga protokollar orqali kompozitsiyani qo‘llaydi.