Motivační příklady pro polymorfismus
Ve všech jednotkách jsou definovány tři třídy:
- Třída zvíře
Má konstruktor init, metodu kdojsem, která volá metodu jakdelam
- Třída pes
Podtřída třídy zvíře
- Třída kočka
Podtřída třídy zvíře
Jednotlivé jednotky se liší tím, které metody jednotlivé podtřídy předefinovají.
Všechny programy jsou stejné a liší se jen tím, kterou jednotku používají.
- Jednotka ZV5
a program PR5
Metoda jakdelam je v třídě zvíře virtuální. Obě podtřídy předefinovávají
konstruktor a obě metody kdojsem a jakdelam.
- Jednotka ZV6 a
program PR6
Obě podtřídy předefinovájí jen konstruktor a virtální metodu jakdelam.
- Jednotka ZV7 a
program PR7
Metoda jakdelam neni ve třídě zvire virtuální, obě podtřídy ji předefinovávají,
v podtřídě pes je prohlášena za virtuální.
- Jednotka ZV8 a
program PR8
V žádné třídě není žádná metoda prohlášena za virtuální. Kočka předefinovává obě metody,
pes jen metodu jakdelam.
- Jednotka ZV9 a
program PR9
Metoda jakdelam je ve třídě zvire virtuální, obě podtřídy předefinovávají obě metody.
Třída kočka má jen zděděný konstruktor, přesto mechanizmus vrtuálních
metod funguje správně i pro exempláře třídy kočka.