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:
-
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.
-
Parametrický polymorfismus (Parametric Polymorphism) — realizuje se pomocí generických typů, kdy funkce nebo třídy pracují s libovolnými datovými typy.
-
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ů.
-
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
}