Sobes.tech
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()    // Թռչել երկնքում

Այսպիսով, բազմակի ժառանգությունը հասնում է մեկ դասից ժառանգության և մի քանի պրոտոկոլների իրագործման միջոցով։