Sobes.tech
Junior

Mi az a polimorfizmus a programozásban?

sobes.tech MI

Válasz az MI-től

A polimorfizmus az objektumok azon képessége, hogy különböző osztályokból származó objektumok ugyanarra az üzenetre (metódushívásra) különböző választ adjanak.

Egyszerűbben fogalmazva, ugyanaz a metódus különböző módon viselkedhet attól függően, hogy melyik objektum hívja meg. Ez öröklés és metódusfelülírás, valamint interfészek használatával érhető el.

Swift példával:

protocol Animal {
    func makeSound()
}

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

class Cat: Animal {
    func makeSound() {
        print("Miau")
    }
}

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

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

playSound(animal: dog) // Kiírja: Hau
playSound(animal: cat) // Kiírja: Miau

Itt a playSound függvény egy Animal típusú objektumot fogad, de a konkrét osztály (Dog vagy Cat) függvényében a megfelelő makeSound implementáció hívódik meg.