Junior — Middle
Може ли се реализовати вишејединствено наслеђивање у језику Swift?
sobes.tech АИ
Одговор од АИ
U jeziku Swift, višestruko nasleđivanje klasa nije podržano, što znači da klasa može naslediti samo od jedne nadklase.
Međutim, Swift podržava protokole (protocols), koji omogućavaju implementaciju funkcionalnosti slične višestrukom nasleđivanju putem implementacije više protokola.
Primer:
protocol Flyable {
func fly()
}
protocol Swimmable {
func swim()
}
class Animal {
func eat() {
print("Jede")
}
}
class Duck: Animal, Flyable, Swimmable {
func fly() {
print("Leti")
}
func swim() {
print("Pliva")
}
}
let donald = Duck()
donald.eat() // Jede
donald.fly() // Leti
donald.swim() // Pliva
Na ovaj način, funkcionalnost se proširuje nasleđivanjem jedne klase i implementacijom više protokola.