Sobes.tech
Junior — Middle

Tudnál felsorolni különböző típusú polimorfizmust az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

A tárgyorientált programozásban (OOP) több fő polimorfizmus típus különíthető el:

  1. Al-típusú polimorfizmus (Subtype Polymorphism) — a legelterjedtebb típus, öröklés és metódus felülírás révén valósul meg. Lehetővé teszi az alosztályok objektumainak használatát a bázissal szemben.

  2. Parametrikus polimorfizmus (Parametric Polymorphism) — általános típusok (generikusok) segítségével valósul meg, amikor függvények vagy osztályok bármilyen adattípussal működnek.

  3. Ad-hoc polimorfizmus (Ad-hoc Polymorphism) — függvények és operátorok túlterhelését foglalja magában, amikor egy függvény több implementációval rendelkezik különböző paramétertípusokra.

  4. Futásidejű polimorfizmus (Runtime Polymorphism) — virtuális metódusok és dinamikus kötés révén érhető el, amikor a metódushívás futásidőben dől el.

Swift (iOS) példája al-típusú polimorfizmusról:

class Animal {
    func sound() {
        print("Valamilyen hang")
    }
}

class Dog: Animal {
    override func sound() {
        print("ugat")
    }
}

class Cat: Animal {
    override func sound() {
        print("miau")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // A metódushívás az objektum tényleges típusától függ
}