Sobes.tech
Junior — Middle

Môžeš vymenovať rôzne typy polymorfizmu v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

V objektovo orientovanom programovaní (OOP) rozlišujeme niekoľko hlavných typov polymorfizmu:

  1. Polymorfizmus podtypu (Subtype Polymorphism) — najbežnejší typ, realizovaný cez dedičstvo a prepísanie metód. Umožňuje používať objekty podtried namiesto objektov základnej triedy.

  2. Parametrický polymorfizmus (Parametric Polymorphism) — realizuje sa pomocou generických typov, keď funkcie alebo triedy pracujú s akýmkoľvek typom dát.

  3. Ad-hoc polymorfizmus (Ad-hoc Polymorphism) — zahŕňa preťaženie funkcií a operátorov, keď jedna funkcia má niekoľko implementácií s rôznymi typmi parametrov.

  4. Runtime polymorfizmus (Runtime Polymorphism) — sa dosahuje pomocou virtuálnych metód a dynamického viazania, keď volanie metódy je určené počas behu.

Príklad podtypu polymorfizmu v Swift (iOS):

class Animal {
    func sound() {
        print("Nejaký zvuk")
    }
}

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

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

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Volanie metódy závisí od skutočného typu objektu
}