Junior — Middle
Swift тилинде көп мурас алуу мүмкүнбү?
sobes.tech AI
AIден жооп
Swift тилинде көп мурас берүү (multiple inheritance) колдоо көрбөйт, демек, класс бир гана супер классынан мурас алат.
Бирок, Swift протоколдорду колдойт, алар аркылуу көп мурас берүүгө окшош функционалдуулукту бир нече протоколду ишке ашыруу аркылуу камсыз кылуу мүмкүн.
Мисал:
protocol Flyable {
func fly()
}
protocol Swimmable {
func swim()
}
class Animal {
func eat() {
print("Жейт")
}
}
class Duck: Animal, Flyable, Swimmable {
func fly() {
print("Учуп жатат")
}
func swim() {
print("Жуунуп жатат")
}
}
let donald = Duck()
donald.eat() // Жейт
donald.fly() // Учуп жатат
donald.swim() // Жуунуп жатат
Мындай жол менен, функционалдуулук бир класс мурас алуу жана бир нече протоколду ишке ашыруу аркылуу кеңейтилет.