Lekce 15 - Polymorfismus v C++
V minulé lekci, Mág do objektové arény v C++, jsme si vytvořili mága. Ten dokáže bojovat,
ale ještě není v aréně. Do arény jsme jej nepřidávali, protože je
zatím připravena pouze pro třídu Bojovnik
.
V dnešním tutoriálu musíme C++ říci, že Mag je skutečně nějaký bojovník a může se k němu podle toho chovat.
Polymorfismus
Nenechte se vystrašit příšerným názvem této techniky, protože je
alespoň v jádru jednoduchá. Polymorfismus umožňuje používat jednotné
rozhraní pro práci s různými typy objektů. Mějme například mnoho
objektů, které reprezentují nějaké geometrické útvary (kruh, čtverec,
trojúhelník). Bylo by jistě přínosné a přehledné, kdybychom s nimi mohli
komunikovat jednotně, ačkoli se liší. Můžeme zavést třídu
GeometrickyUtvar
, která by obsahovala atribut barva a metodu
vykresli()
. Všechny geometrické tvary by potom dědily z této
třídy její interface (rozhraní). Objekty kruh a čtverec se ale jistě
vykreslují jinak. Polymorfismus nám umožňuje přepsat si metodu
vykresli()
u každé podtřídy tak, aby dělala, co chceme.
Rozhraní tak zůstane zachováno a my nebudeme muset přemýšlet, jak se to u
onoho objektu volá.
Polymorfismus bývá často vysvětlován na obrázku se zvířaty, která
mají všechna v rozhraní metodu speak()
, ale každé si ji
vykonává po svém.
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V C++ tutoriálu se podíváme na jedno z nejtěžších témat objektově orientovaného programování, polymorfismus a virtuální metody.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.