@Rajko,
U kom jeziku je moguće raditi upcasting tako da se pozove virtuelna metoda neke od baznih klasa?
U C# kao i u Javi se uvek poziva poslednja override-ovana metoda bez obzira kako je objekat cast-ovan
i kako ga posmatramo i takvo ponasanje je verujem u svim jezicima po defaultu.
Na primer, ove 3 linije uvek daju isti rezultat:
Code:
Tiger.Say();
((Mamal)Tiger).Say();
((Animal)Tiger).Say();
E sada, u C# postoji keyword "new" koji dozvoljava da prekineš sa postojećom implementacijom metode
i da uvedeš novu implementaciju metode sa istim potpisom - redefinisanje metode.
Ovime se stara metoda iz nasleđene klase sakriva ako posmatraš objekat koji je nove klase (i nadalje)
Ako bi u prethodnom primeru radio "new" umesto "override", svaka od 3 linije bi dala različit rezultat.
Mene baš interesuje koji jezici dozvoljavaju poziv metode iz neke od baznih klasa,
znači ovo što si pitao i očigledno ne može u Javi.
I ako može neki primer koda, sintakse.
Pozdrav!