2.3. Polymorfismus

Časová náročnost
Časová náročnost: 5 minut

upozornění Polymorfismus je vlastnost, která umožňuje, aby bylo jedno jediné jméno použito pro dva nebo více souvisejících, ale technicky různých účelů. Ve vztahu k OOP umožňuje polymorfismus určit jedním jménem celou obecnou třídu procesů. Uvnitř obecné třídy procesů je pak volba konkrétního procesu dána typem dat.

Obecně lze polymorfismus charakterizovat jako: "jedno rozhraní, mnoho metod". Výhodou polymorfismu je, že omezuje přílišnou složitost tím, že určením obecné třídy procedury povolí jediné rozhraní. Je pak záležitostí překladače, aby vybral konkrétní proceduru, vhodnou pro danou situaci.

Jednoduchý příklad
Příklad:
V jazyce C byly definovány funkce abs(), labs() a fabs() které vracely absolutní hodnotu z čísel integer, long integer a float. V C++ který podporuje polymorfismus mohou být všechny tyto funkce volány pod jediným jménem abs(). Tato vlastnost polymorfismu se nazývá vícenásobná definice funkce.

Polymorfismus může být použit také na operátory.

Jednoduchý příklad
Příklad:
V jazyce C je znaménko + užito ke sčítání integer, long integer, znaku nebo hodnoty v pohyblivé řádové čárce. Ve všech případech překladač pozná, který typ aritmetiky má použit. V C++ je možné tento koncept podle vlastního uvážení rozšířit na další typy dat. Tato vlastnost polymorfismu se nazývá vícenásobná definice operátoru.

Polymorfismus tedy dovoluje vytvářet standardní rozhraní k příslušným procesům.