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.