Otevřít hlavní menu

Změny

Virtuálna metóda

Přidáno 925 bajtů, 21. 9. 2012, 15:06
dedenie metód;metóda;polymorfizmus;prevzatie metódy predka;virtuálna metóda
Prečítajte si najskôr heslá [[Polymorfizmus]] a [[Statická metóda]].

Ak je metóda ( napríklad Draw() ) špecifikovaná v predchodcovi aj nasledovníkovi ako virtuálna, potom sa bude procedúra Print_and_Draw() volaná z nasledovníka správať “korektne”, podľa našich predstáv – aj keď je deklarovaná v predchodcovi, zavolá metódu Draw() nasledovníka.

Metóda sa prehlási za virtuálnu, keď za jej hlavičku napíšeme (aj v objekte aj v implementácii) kľúčové slovo [[virtual]]:
procedure Draw( ... ); virtual;
V Turbo Pascale, ak má objekt čo len jednu virtuálnu metódu, musí mať aj aspoň jeden konštruktor. Tento konštruktor môže byť “prázdny” – nemusí obsahovať žiadny príkaz, ale musí byť prítomný. Pri jeho implicitnej výzve Pascal zistí, že v objekte sú aj virtuálne metódy a korektne ich pripojí.
[[Category:Objektovo_orientované_programovanie]]