Sobes.tech
Junior

Mis on polümorfism programmeerimises?

sobes.tech AI

Vastus AI-lt

Polymorphism on objekti võimekus reageerida sama sõnumi (meetodi kutsumise) korral erinevalt.

Lihtsustatult, sama meetod võib käituda erinevalt sõltuvalt objekti tüübist, mis selle välja kutsub. Seda saavutatakse pärimise ja meetodite üle kirjutamise ning kasutades interface'e.

Näide Swiftis:

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) // Väljund: Hau
playSound(animal: cat) // Väljund: Miau

Siin võtab funktsioon playSound objekti tüübiga Animal, kuid sõltuvalt konkreetsest klassist (Dog või Cat) kutsutakse välja vastav makeSound meetodi implementatsioon.