Sobes.tech
Junior — Middle

Swift tilida bir vaqtning o'zida bir nechta sinfdan meros olish mumkinmi?

sobes.tech AI

AIdan javob

Swiftda bir vaqtning o'zida bir nechta sinfdan meros olish mumkin emas, ya'ni ko'p sinf merosxo'rligi qo'llab-quvvatlanmaydi. Sinf faqat bitta ota bo'lishi mumkin. Buning o'rniga, Swift o'xshash funksionallikka erishish uchun protokollarni ishlatadi: sinf bir nechta protokollarni amalga oshirishi mumkin, bu esa turli xulq-atvorlar va xususiyatlarni ko'p meros olmadan qo'shishga imkon beradi.

Protokollarni amalga oshirish misoli:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle: Drivable {
    func drive() {
        print("Yurish")
    }
}

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

let car = FlyingCar()
car.drive() // Yurish
car.fly()   // Uchish

Shu tarzda, Swift protokollar orqali tarkibni rag'batlantiradi, sinflarning ko'p meros olish o'rniga.