Sobes.tech
Junior

Co je to polymorfismus v programování?

sobes.tech AI

Odpověď od AI

Polymorfismus je schopnost objektů různých tříd reagovat na stejné zprávy (volání metod) různými způsoby.

Jednoduše řečeno, stejná metoda se může chovat odlišně v závislosti na objektu, který ji volá. Toho se dosahuje dědičností a přepisováním metod, stejně jako použitím rozhraní.

Příklad v Swift:

protocol Animal {
    func makeSound()
}

class Dog: Animal {
    func makeSound() {
        print("Haf")
    }
}

class Cat: Animal {
    func makeSound() {
        print("Mňau")
    }
}

func playSound(animal: Animal) {
    animal.makeSound()
}

let dog = Dog()
let cat = Cat()

playSound(animal: dog) // Vytiskne: Haf
playSound(animal: cat) // Vytiskne: Mňau

Zde funkce playSound přijímá objekt typu Animal, ale v závislosti na konkrétní třídě (Dog nebo Cat) je volána odpovídající implementace metody makeSound.