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
281
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
SDP jo 100 % suositumpi kuin persut
Kertoo Hesarin uusin kannatuskysely. Demareiden kannatus on miltei tuplat verrattuna persuihinl. Suomen kansa ei selväst29014636Valtavasti suomalaisia asunnottomina, mutta ei yhtään somalia
tai muuta kehitysmaalaista. Mites tässä näin kävi? Tiedän hyvin, että esim. somaleita lentää ulos mm. Hekan asunnoista,1564132PS ylivoimainen nousija myös HS:n gallupissa, SDP laskee taas
https://www.verkkouutiset.fi/a/hs-gallup-sdpn-suosio-laskee-ps-nousussa/#0a7d2507 Ylivoimainen viime kuukausien nousija1353881Totuuspuolueen johtaja Jaana "prinsessa Leia" Kavonius on vangittu
Kavonius määrättiin jo keväällä 2024 poissaolevana vangittavaksi todennäköisin syin epäiltynä 13 vainoamisesta ja 24 kun4421833Kovia syytöksiä Stefan Thermaninsta.
Jättänyt taas maksamatta kohuliikemies, hupparit ja muita ostamiaan tavaroita. On soiteltu liikkeestä ja Stefan iskenyt1711787En minä kyllä enää odota sinua
Olet siellä sen harmaan kanssa. Niin, annoit minun nähdä lämpimät tunteesi siitä huolimatta. Se merkitsi kyllä paljon. O351716Jos joku luulee että kaikki käy
Sanon vain tämän. Minun kanssani ei neuvotella. Minun kanssani eletään tasavertaisesti. Jos se on liikaa, niin ovi rinn521375Joka kolmas työtön on työkyvytön
Viime vuonna työnhakuvelvoitteen ulkopuolella oli noin kolmannes työttömistä työnhakijoista. Huhheijaa, mihin suomalais1461199Sakin hivutus - ilmiö
Miten tuollainen tuollainen ilmiö kuin ”sakin hivutus” syntyy? Mitä syitä ilmiön syntymiseen tarvitaan? Onko sakissa jok661152Ei ole rohkeutta tulla jututtamaan
Voidaan me nähdä ja tervehtiä, sitäkin harvoin, mutta iso kynnys on edes mennä lähelle ja kysyä kuulumisia. Ymmärrät var81131