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, ya’ni, sinf faqat bitta superklassdan meros olishi mumkin.

Biroq, Swift protokollarni qo‘llab-quvvatlaydi, ular yordamida bir nechta protokolni amalga oshirish orqali ko‘p meroslikga o‘xshash funksionallikni amalga oshirish mumkin.

Misol:

protocol Flyable {
    func fly()
}

protocol Swimmable {
    func swim()
}

class Animal {
    func eat() {
        print("Oziqlanmoqda")
    }
}

class Duck: Animal, Flyable, Swimmable {
    func fly() {
        print("Uchmoqda")
    }
    
    func swim() {
        print("Suzmoqda")
    }
}

let donald = Duck()
donald.eat()  // Oziqlanmoqda
donald.fly()  // Uchmoqda
donald.swim() // Suzmoqda

Shu tarzda, funksionallikni kengaytirish uchun, bir sinf meros oladi va bir nechta protokolni amalga oshiradi.