Mummu on laiska ja huonomuistinen.
Mummulla on yläluokka ja alaluokka, joissa samanniminen metodi.
C :ssa muistaakseni kummatkin suoritettiin kutsuttaessa.
Mites tämä javassa menee? Näyttää että kun kutsun yläluokan kautta metodia vain se suoritetaan ja sama toisinpäin. Nyt siis kutsuttaessa pitäisi suorittaa molemmat sekä ylä että alaluokan toteutus.
Pitäiskö tämä sittenkin toteuttaa niin että yläluokkaan tehdään abstrakti eriniminen metodi ja sen toteutus alaluokkaan jota tämä yläluokka sitten kutsuu.
Mummulla on yläluokka ja alaluokka, joissa samanniminen metodi.
C :ssa muistaakseni kummatkin suoritettiin kutsuttaessa.
Mites tämä javassa menee? Näyttää että kun kutsun yläluokan kautta metodia vain se suoritetaan ja sama toisinpäin. Nyt siis kutsuttaessa pitäisi suorittaa molemmat sekä ylä että alaluokan toteutus.
Pitäiskö tämä sittenkin toteuttaa niin että yläluokkaan tehdään abstrakti eriniminen metodi ja sen toteutus alaluokkaan jota tämä yläluokka sitten kutsuu.
Vastaukset 2
Vanhimmat
Taisi olla niin, että Javassa kutsutaan vain toista kuormitettua metodia, mutta voit alaluokasta kutsua yläluokan metodia kutsulla super.metodini().
"Pitäiskö tämä sittenkin toteuttaa niin että yläluokkaan tehdään abstrakti eriniminen metodi ja sen toteutus alaluokkaan jota tämä yläluokka sitten kutsuu."
Niin kai sitten jos et voi aina tehdä kutsua periytettyyn luokkaan johon kovasorvaat tuon super-kutsun. Laiska kun olen, niin en jaksa tarkistaa :)
c :ssa muistaakseni ylikuormitettua metodia kutsutaan vähän erilailla riippuen onko se "virtual" vai ei. Jos se on virtual niin aina kutsutaan ylikuormittavaa metodia riippumatta siitä minä tyyppinä kutsuja näkee olion. Jos se ei ole virtual niin kutsutaan aina sen tyypin metodia jona kutsuja näkee olion.
Javassa kaikki käyttäytyy aina "virtuaalina" niin että kutsutaan päällimmäistä metodia, josta sitten tarvittaessa kutsutaan super.jokuMetodi(); tms