15. diel - Polymorfizmus v C ++
V minulej lekcii, Mág do objektovej arény v C ++ , sme si vytvorili mága. Ten dokáže bojovať,
ale ešte nie je v aréne. Do arény sme ho nepridávali, pretože je zatiaľ
pripravená len pre triedu Bojovnik
. V dnešnom tutoriále teda
musíme C ++ povedať, že Mag je skutočne nejaký bojovník a môže sa k nemu
podľa toho správať.
Polymorfizmus
Nenechajte sa vystrašiť príšerným názvom tejto techniky, pretože je
aspoň v jadre jednoduchá. Polymorfizmus umožňuje používať jednotné
rozhranie pre prácu s rôznymi typmi objektov. Majme napríklad veľa objektov,
ktoré reprezentujú nejaké geometrické útvary (kruh, štvorec,
trojuholník). Bolo by určite prínosné a prehľadné, keby sme s nimi mohli
komunikovať jednotne, hoci sa líšia. Môžeme zaviesť triedu
GeometrickyUtvar
, ktorá by obsahovala atribút farba a metódu
vykresli()
. Všetky geometrické tvary by potom dedili z tejto
triedy jej interface (rozhranie). Objekty kruh a štvorec sa ale iste
vykresľujú inak. Polymorfizmus nám umožňuje prepísať si metódu
vykresli()
pri každej podtriedy tak, aby robila, čo chceme.
Rozhranie tak zostane zachované a my nebudeme musieť premýšľať, ako sa to
u onoho objekte volá.
Polymorfizmus býva často vysvetľovaný na obrázku so zvieratami, ktoré
majú všetky v rozhraní metódu speak()
, ale každé si ju
vykonáva po svojom.
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Kúpiť tento kurz
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V C ++ tutoriálu sa pozrieme na jedno z najťažších tém objektovo orientovaného programovania, polymorfizmus a virtuálne metódy.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.