Sobes.tech
Junior

Kas yra polimorfizmas programavime?

sobes.tech AI

Atsakymas iš AI

Polimorfizmas yra objekto gebėjimas iš skirtingų klasių reaguoti į tas pačias žinutes (metodų kvietimus) skirtingais būdais.

Paprasčiau tariant, tas pats metodas gali elgtis skirtingai priklausomai nuo objekto, kuris jį kviečia. Tai pasiekiama per paveldėjimą ir metodų perrašymą, taip pat naudojant sąsajas.

Pavyzdys Swift kalba:

protocol Animal {
    func makeSound()
}

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

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

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

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

playSound(animal: dog) // Išves: Gau
playSound(animal: cat) // Išves: Miau

Čia funkcija playSound priima Animal tipo objektą, tačiau priklausomai nuo konkrečios klasės (Dog ar Cat), kviečiama atitinkama makeSound metodo realizacija.