Ylilataaminen javassa

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.
2425
Äänestä

Muut lukivat myös

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 :)

Äänestä

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

Äänestä

Kommentoi aloitusta


Java-mummu pulassa kirjoitti:

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.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu