Junior — Middle
Da li je moguće u jeziku Swift implementirati višestruko nasleđivanje od više klasa istovremeno?
sobes.tech АИ
Одговор од АИ
У 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 подстиче композицију кроз протоколе уместо мултинаследства класа.