Sobes.tech
Junior — Middle

Můžeš vyjmenovat různé typy polymorfismu v objektově orientovaném programování?

sobes.tech AI

Odpověď od AI

V objektově orientovaném programování (OOP) rozlišujeme několik hlavních typů polymorfismu:

  1. Polymorfismus podtypu (Subtype Polymorphism) — nejběžnější typ, realizovaný dědičností a přepsáním metod. Umožňuje používat objekty podtříd místo objektů základní třídy.

  2. Parametrický polymorfismus (Parametric Polymorphism) — realizuje se pomocí generických typů, kdy funkce nebo třídy pracují s libovolnými datovými typy.

  3. Ad-hoc polymorfismus (Ad-hoc Polymorphism) — zahrnuje přetížení funkcí a operátorů, kdy jedna funkce má několik implementací s různými typy parametrů.

  4. Polymorfismus za běhu (Runtime Polymorphism) — je dosažen pomocí virtuálních metod a dynamického vázání, kdy volání metody je určeno za běhu.

Příklad podtypu polymorfismu v Swift (iOS):

class Animal {
    func sound() {
        print("Nějaký zvuk")
    }
}

class Dog: Animal {
    override func sound() {
        print("Štěkání")
    }
}

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

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Volání metody závisí na skutečném typu objektu
}