next up previous contents index
Next: Hierarchie tříd a dědičnost Up: Typy a hodnoty Previous: Metody třídy   Obsah   Index


Přetížení metod a polymorfismus

V Plutu může být v jedné třídě totéž jméno použito pro více metod s různou signaturou; což umožňuje přetížení tohoto jména. Přetížení metody je způsob, jak realizovat polymorfismus. Mějme následující deklaraci třídy:

class osoba [rodice $\Rightarrow$ {osob};
deti() $\Rightarrow$ {osoba} {deti() $\rightarrow$ $\langle$C$\rangle$:- C.rodice $\rightarrow$ $\langle$Self$\rangle$}
deti(osoba) $\Rightarrow$ {osoba} {deti(P) $\rightarrow$ $\langle$C$\rangle$:- C.rodice $\rightarrow$ {Self ,P}}]

kde první metoda je použita k získání dětí osoby, zatímco druhá k získání společných dětí dvou osob, z nichž jedna je označena jako Self druhá P. Jméno deti je v těchto dvou metodách přetíženo. Stejně jako u atributů můžeme i u všech ostatních metod kromě konstruktorů kontrolovat jejich použití pomocí modifikátorů public a private. Implicitní hodnota je opět public, zatímco uvedení slova private zabraňuje přímému použití a je hlavně využíváno pro přechodné metody. Konstruktory jsou vždy public.


next up previous contents index
Next: Hierarchie tříd a dědičnost Up: Typy a hodnoty Previous: Metody třídy   Obsah   Index
Tomáš Kubíček 2002-05-19