next up previous contents index
Next: Dědičnost pomocí změny a Up: PLUTO: popis a ukázky Previous: Přetížení metod a polymorfismus   Obsah   Index


Hierarchie tříd a dědičnost

V Plutu existuje hierarchie tříd na jejímž vrcholu je třída object a na jejím dolním konci třída none. Vícenásobnou dědičností jsou z nadtříd odvozovány podtřídy. Podtřída v Plutu zdědí od svého předka veškeré atributy instance i s jejich implicitními hodnotami a metody přímých nadtříd s parametry jejich dostupnosti. Takto vzniklá třída si může pochopitelně dodefinovat vlastní atributy i s počátečními hodnotami i metody. Dále platí, že každá instance podtřídy je zároveň i nepřímou instancí všech jejích předků.

Mějme následující definici třídy:

class zamestanec isa osoba[plat $\Rightarrow$ real default 5000;
zvyseni(real R){plat is plat + plat*R}]

Takováto definice říká, že zamestanec je podtřídou třídy osoba. A proto dědí zamestanec od osoby všechny atributy instancí, jejich implicitní hodnoty a metody. Navíc je však deklarován atribut plat s implicitní hodnotou a metoda zvyseni. Každá instance třídy zamestanec je tak zároveň nepřímou instancí třídy osoba.

Při definici přímých potomků třídy object můžeme toto slovo vynechat. Třída osoba tak může vzniknout dvěma různými definicemi:

class osoba isa object[...]         nebo          class osoba[...]



Subsections
next up previous contents index
Next: Dědičnost pomocí změny a Up: PLUTO: popis a ukázky Previous: Přetížení metod a polymorfismus   Obsah   Index
Tomáš Kubíček 2002-05-19