Junior
Čo je to polymorfizmus v programovaní?
sobes.tech AI
Odpoveď od AI
Polymorfizmus (z gréckeho "mnoho tvarov") je schopnosť rôznych objektov reagovať na rovnakú správu (volanie metódy) rôznym spôsobom v závislosti od ich typu.
V objektovo orientovanom programovaní umožňuje polymorfizmus:
- Prácu s objektmi rôznych tried prostredníctvom spoločného rozhrania alebo základnej triedy.
- Vytváranie flexibilnejšieho a rozšíriteľnejšieho kódu.
Hlavné typy polymorfizmu:
- Compile-time (statický) polymorfizmus: realizuje sa cez preťaženie metód (method overloading). Metódy s rovnakým názvom, ale rôznymi signatúrami (počet alebo typy parametrov), sú definované v jednej triede.
- Run-time (dynamický) polymorfizmus: realizuje sa cez prepísanie metód (method overriding). Metóda v odvodené triede má rovnakú signatúru ako tá v základnej triede. Ktorá metóda bude volaná, sa určuje počas behu v závislosti od skutočného typu objektu.
Príklad v Pythone (dynamický polymorfizmus):
class Animal:
def sound(self):
pass # Základná metóda, ktorá bude prepísaná
class Dog(Animal):
def sound(self):
# Prepísanie metódy sound pre triedu Dog
print("Woof")
class Cat(Animal):
def sound(self):
# Prepísanie metódy sound pre triedu Cat
print("Meow")
# Funkcia, ktorá pracuje s objektmi cez základnú triedu Animal
def make_animal_sound(animal):
animal.sound()
# Použitie polymorfizmu
dog = Dog()
cat = Cat()
make_animal_sound(dog) # Zavolá Dog.sound() -> Woof
make_animal_sound(cat) # Zavolá Cat.sound() -> Meow