Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Dedicnost - proc se vola metoda potomka?

Java Java Dedicnost - proc se vola metoda potomka?

Aktivity (1)
Avatar
mnauik
Člen
Avatar
mnauik:1.5.2014 20:25

Ahoj, zkoušel jsem si jen tak dědičnost a nevím, proč se volá toString potomka.

Potřebuju vysvětlit dvě věci:

  1. proč se tak děje (vím, že objekty jsou referenční proměnné)
  2. co udělat, aby to vyhodilo AClass?
AClass a = new BClass();
System.out.println((AClass)a);

Výstup:
BClass
ale čekal jsem AClass

Děkuji

Odpovědět 1.5.2014 20:25
minusuj mě, ale zdůvodni to ;)
Avatar
lime
Člen
Avatar
lime:3.5.2014 14:49

Uvedom si, že vytváraš inštanciu triedy BClass a nie AClass, takže pri volaní metódy toString() sa zavolá metóda triedy BClass! To pretypovanie, ktoré si spravil ti dovolí použiť metódy triedy AClass (ale takisto BClass, ktorá od nej dedí), keď trieda BClass prepisuje metódu toString() tak použije svoju, ak by ju neprepisovala tak vtedy by použila metódu rodiča a mal by si výstup AClass.

 
Nahoru Odpovědět 3.5.2014 14:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.