Junior — Middle
Ինչպե՞ս է Swift լեզվում հասանելի բազմակի ժառանգություն դասերից կամ պրոտոկոլներից։
sobes.tech AI
Պատասխան AI-ից
Swift- ում, դասը կարող է ժառանգել միայն մեկ սուպեր դասից, այսինքն՝ բազմակի ժառանգություն դասերի չի աջակցվում: Սակայն, նման ազդեցություն ստանալու համար, օգտագործվում է մեկ դասից ժառանգություն և մի քանի պրոտոկոլների իրագործում: Swift- ի պրոտոկոլները սահմանում են պահանջների հավաքածու (մեթոդներ, հատկություններ), որոնք դասը, կառուցվածքը կամ ցուցակը պետք է իրականացնել: Այսպիսով, դասը կարող է ժառանգել վարքագիծ սուպեր դասից և միաժամանակ համապատասխանել մի քանի պրոտոկոլների, ինչը թույլ է տալիս համակցել գործառույթները:
Օրինակ՝
protocol Drivable {
func drive()
}
protocol Flyable {
func fly()
}
class Vehicle {
func start() {
print("Տրանսպորտը սկսվեց")
}
}
class FlyingCar: Vehicle, Drivable, Flyable {
func drive() {
print("Վարել ճանապարհին")
}
func fly() {
print("Թռչել երկնքում")
}
}
let myFlyingCar = FlyingCar()
myFlyingCar.start() // Տրանսպորտը սկսվեց
myFlyingCar.drive() // Վարել ճանապարհին
myFlyingCar.fly() // Թռչել երկնքում
Այսպիսով, բազմակի ժառանգությունը հասնում է մեկ դասից ժառանգության և մի քանի պրոտոկոլների իրագործման միջոցով։