TÄMÄ MENEE YLI HILSEEN:
KYSEISEN KAPPALEEN ALUSSA ANNETAAN ESIMERKKI JA SANOTAAN ETTÄ OLION KUTSUTTAVISSA OLEVAT METODIT MÄÄRÄYTYVÄT SEN LUOKAN MUKAAN MIHIN LUOKAAN SEN VIITE ON TALLENNETTU:
Henkilo olli = new Opiskelija("Olli", "Ida Albergintie 1 00400 Helsinki");
olli.opintopisteita(); // EI TOIMI!
olli.opiskele(); // EI TOIMI!
String.out.println(olli); // olli.toString() TOIMII
SITTEN KUITENKIN SAMAN KAPPALEEN LOPUSSA TODETAAN, ETTÄ:
Suoritettava metodi valitaan aina olion todellisen tyypin perusteella riippumatta käytetyn muuttujan tyypistä. Oliot ovat monimuotoisia, eli olioita voi käyttää usean eri muuttujatyypin kautta. Suoritettava metodi liittyy aina olion todelliseen tyyppiin. Tätä monimuotoisuutta kutsutaan polymorfismiksi.
JA ANNETAAN ESIMERKIKSI KOODI JOSSA TULOSTUSMETODI ON KUITENKIN HAETTU OPISKELIJALUOKASTA, VAIKKA VIITTEET ON TALLENNETTU HENKILO JA OBJECT-TYYPPISINÄ:
Henkilo olli = new Opiskelija("Olli", "Ida Albergintie 1 00400 Helsinki");
String.out.println(olli);
Object liisa = new Opiskelija("Liisa", "Väinö Auerin katu 20 00500 Helsinki");
String.out.println(liisa);
TULOSTUU:
Olli
Ida Albergintie 1 00400 Helsinki
opintopisteitä 0
Liisa
Väinö Auerin katu 20 00500 Helsinki
opintopisteitä 0
ELI KUMMINPÄIN SE NYT ON? TODELLISEN LUOKAN PERUSTEELLA VAI SEN LUOKAN MIHIN VIITE ON TALLENNETTU?
MOOC 53.4 Olion tyyppi määrää kutsutun metodin:
7
303
Vastaukset
- viitteenMukaan
(Erään käsissäni olevan)Java-kirjan mukaan vain sen luokan ja yliluokkien metodit minkä tyyppisena olio on esitelty voidaan käyttää (poislukien vielä yliluokkien yksityiset metodit, joita ei myöskään voi käyttää).
Eli jos on esitelty Object oliona, on käytössä vain Object luokan metodit.
Object luokkaan kuuluu metodi toString. Mielestäni tässä käytetään Object luokan metodia toString, eikä ylikirjoitettu toString metodia.
Object liisa = new Opiskelija("Liisa", "Väinö Auerin katu 20 00500 Helsinki");
String.out.println(liisa);
String.out.println(toString(liisa)); <---- toString(liisa) käyttäen Object luokan toString metodia- vai_noinko_se_merkitään
liisa.toString()
Object metodilla
haparointia vielä.. - internally_Invokes
vai_noinko_se_merkitään kirjoitti:
liisa.toString()
Object metodilla
haparointia vielä.."If you print any object, java compiler internally invokes the toString() method on the object. So overriding the toString() method, returns the desired output, it can be the state of an object etc. depends on your implementation."
http://www.javatpoint.com/understanding-toString()-method - OletkoTestannut
Object metodilla tulostus pitäisi kait olla samantyylinen kuin tuossa linkissä:
"Output:Student@1fee6fc
Student@1eed786"
Eli jotain ... Object@ab023495 - ajatustenIterointia
"Eli jos on esitelty Object oliona, on käytössä vain Object luokan metodit.
Object luokkaan kuuluu metodi toString. Mielestäni tässä käytetään Object luokan metodia toString, eikä ylikirjoitettu toString metodia.
Object liisa = new Opiskelija("Liisa", "Väinö Auerin katu 20 00500 Helsinki");
String.out.println(liisa);
String.out.println(toString(liisa)); <---- toString(liisa) käyttäen Object luokan toString metodia"
!!!! Tämä on siis väärin eli jos on ylikirjoittu metodi, käytetään tätä ylikirjoitettua:
Kuitenkin metodi on olemassa jo yliluokassa, jolloin siitä käytetään ylikirjoitettua aliluokan omaa metodia.
Jos ei olisi yliluokassa, ei voisi käyttää tälläistä vasta aliluokassa mainittua metodia.
?????????????????????
varoitus: voi sisältää vääriä termejä - alkuperäinen
Eli jos metodi on ylikirjoitettuna aliluokassa, niin sitten palataan sinne kuitenkin. KIITOS, tämä oli selventävä vastaus.
- Voisi_ehkä_Sanoa
"OLION KUTSUTTAVISSA OLEVAT METODIT MÄÄRÄYTYVÄT SEN LUOKAN MUKAAN MIHIN LUOKAAN SEN VIITE ON TALLENNETTU:
"
Kuitenkin metodien ylikirjoitukset toimivat.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Porvarimediat paniikissa demareiden huiman kannatuksen vuoksi
Piti sitten keksiä "nimettömiin lähteisiin" perustuen taas joku satu. Ovat kyllä noloja, ja unohtivat sen, että vaalit896052KATASTROFI - Tytti Tuppurainen itse yksi pahimmista kiusaajista!!!
STT:n lähteiden mukaan SDP:n eduskuntaryhmän puheenjohtaja Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti3345309Huono päivä
Tänään on ollut tosi raskas päivä töissä. Tekis mieli itkeä ja huutaa. En jaksa just nyt mitään. Minä niin haluaisin ja212686Mikä siinä on ettei persuille leikkaukset käy?
On esitetty leikkauksia mm. haitallisiin maataloustukiin, kuin myös muihin yritystukiin. Säästöjä saataisiin lisäksi lei512615Lääppijä Lindtman jäi kiinni itse teosta
Lindtman kyselemättä ja epäasiallisesti koskettelee viestintäpäällikköä. https://www.is.fi/politiikka/art-2000011780852841875Juuri nyt! Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti
Ai että mä nautin, Tytti erot vireille! "Käytös on kohdistunut avustajia ja toisia kansanedustajia kohtaan, uutisoi STT1051697- 1141571
Puolen vuoden koeaika
Voisi toimia meillä. Ensin pitäis selvittää "vaatimukset" puolin ja toisin, ennen kuin mitään aloittaa. Ja matalalla pro181533seurakunnan talouspäällikön valinta meni perseelleen
Nyt on ihan pakko kyseenalaistaa tuo Kemijärven seurakunnan päätös talouspäälliköstä. Valitulla ei ole talouspuolen osaa1241454Olen ihmetellyt yhtä asiaa
Eli miksi naiset ovat niin pelokkaan tai vaitonaisen oloisia minun seurassani. Se sai minut ajattelemaan, että olen epäm1351413