Junior — Middle
Կարո՞ղ է Swift լեզվում իրականացնել բազմաբաժան ժառանգություն։
sobes.tech AI
Պատասխան AI-ից
Swift լեզվում բազմաբաժան ժառանգություն (multiple inheritance) չի աջակցվում, այսինքն՝ դասը կարող է ժառանգել միայն մեկ սուպեր դասից:
Այնուամենայնիվ, Swift-ը աջակցում է պրոտոկոլներին (protocols), որոնք թույլ են տալիս իրականացնել բազմաբաժան ժառանգության նման ֆունկցիոնալություն՝ մի քանի պրոտոկոլների իրականացման միջոցով:
Օրինակ՝
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() // Երկար լողում է
Այսպիսով, ֆունկցիոնալությունը ընդլայնվում է մեկ դասի ժառանգությամբ և մի քանի պրոտոկոլների իրականացմամբ։