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-ը խթանում է կազմաձևումը պրոտոկոլների միջոցով՝ փոխարենը բազմաբաժան ժառանգության։