NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Dedicnost - proc se vola metoda potomka?

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
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.