Sobes.tech
Junior — Middle

Կարո՞ղ է Swift լեզվում միաժամանակ մի քանի դասից ժառանգություն իրականացնել:

sobes.tech AI

Պատասխան AI-ից

Swift-те միաժամանակ մի քանի դասից ժառանգություն ստանալ հնարավոր չէ, այսինքն՝ բազմաբաժան ժառանգությունը չի աջակցվում: Դասը կարող է ունենալ միայն մեկ ծնող: Փոխարենը, Swift-ը օգտագործում է պրոտոկոլներ՝ նման գործառույթ ստանալու համար՝ դասը կարող է իրականացնել մի քանի պրոտոկոլ, ինչը թույլ է տալիս ավելացնել տարբեր վարքագծեր և հատկություններ առանց բազմաբաժան ժառանգության:

Պրոտոկոլների իրականացման օրինակ՝

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle: Drivable {
    func drive() {
        print("Սպասում")
    }
}

class FlyingCar: Vehicle, Flyable {
    func fly() {
        print("Ուժեղ")
    }
}

let car = FlyingCar()
car.drive() // Սպասում
car.fly()   // Ուժեղ

Այսպիսով, Swift-ը խթանում է կազմաձևումը պրոտոկոլների միջոցով՝ փոխարենը բազմաբաժան ժառանգության։