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 წახალისებს კომპოზიციას პროტოკოლების მეშვეობით, მრავალმემკვიდრეობის კლასების ნაცვლად.