Periytyminen on keskeinen käsite oliopohjaisessa ohjelmoinnissa (OOP) ja sitä pidetään usein yhtenä tehokkuuden lisäämisen rakennuspalikkana. Tässä oppaassa syvennät ymmärrystäsi periytymisestä Java-kielessä. Opit käsittelemään pääsymodifieroijia, käyttämään konstruktoreita ja mikä rooli kapseloinnilla on periytymisessä.
Tärkeimmät havainnot
- Periytyminen mahdollistaa ominaisuuksien ja metodien perimisen luokasta.
- Pääsymodifieroija private rajoittaa pääsyä muuttujille tai metodeille, kun taas protected mahdollistaa laajennetun pääsyn luokissa, jotka perivät alkuperäisestä luokasta.
- Konstruktoreita pitää kutsua aliluokassa, jotta objektit voidaan oikein alustaa.
- Rajapintamenetelmiä voidaan käyttää yleistettynä, kun on useita erityisiä luokkia.
Vaiheittainen opas
Pääsymodifieroijat: protected vs. private
Jos julistat muuttujan (esim. väri) luokassa kuten Ajoneuvo protected-muodossa, voit käyttää tätä muuttujaa suoraan perivässä luokassa (esim. Auto). Jos kuitenkin julistat muuttujan private-muodossa, et voi suoraan käyttää sitä aliluokassa.

Tämä tarkoittaa käytännössä, että pääsy private-muuttujille on mahdollista vain setttereiden ja gettereiden avulla.
Esimerkki näyttää, että meidän on käytettävä setVäri ja getVäri -menetelmiä päästäksemme private-muuttujaan väri.

Jos muuttuja on julistettu protected-muotoon, voit yksinkertaisesti käyttää sitä Auto-luokassa ja muuttaa arvoa.
Konstruktoreiden käyttö periytymisessä
Aliluokkaa määritellessäsi sinun on varmistettava, että yläluokan konstruktori kutsutaan oikein.

Tämä varmistaa, että väri alustetaan oikein Auto-objektin luomisen yhteydessä.

Huolehdi siitä, että määrität aliluokassa konstruktori, joka välittää yläluokan parametrit asianmukaisesti.
Periminen ja metodikutsut
Kaksi luokkaa, Ajoneuvo ja Auto, mahdollistavat yleisten muuttujien ja metodien käytön. Jos määrität metodin Ajoneuvo-luokassa, voit käyttää tätä metodia myös Auto-luokassa ilman tarvetta kirjoittaa sitä uudelleen.

Tässä kutsutaan metodia ajoneuvoVäriTulosta, joka tulostaa väriarvon, joka saadaan getVäri-metodista.
Rajoitteet metodien pääsyssä
Jos yrität kutsua aliluokassa metodia, joka ei ole luokassa saatavilla, saat käännösvirheen. Esimerkissämme ajoneuvo-objekti on välitettävä, jotta getVäri-metodia voidaan kutsua.

Tämä tarkoittaa käytännössä, että sinun on varmistettava, että metodi vastaa tietotyyppiäsi ennen kuin kutsut sitä. Voit siis siirtää ensimmäisen, toisen tai molemmat ajoneuvot metodille, joka odottaa vain Ajoneuvo-objekteja.
Esimerkki instanssimetodien kutsumisesta staattisissa konteksteissa
Huomaa, että staattisissa metodeissa (static) this-avainsanaa ei voida käyttää, koska se ei viittaa tiettyyn instanssiin. Tällaisissa tapauksissa sinun pitäisi ehkä käyttää toista metodia tai uudelleenjärjestää logiikkaa.

Tämän kutsun myötä väri tulostuu oikein meinAuto-objektille.
Yhteenveto - Periytyminen Javassa: Opas aloittelijoille
Periytyminen on tärkeä käsite Java-ohjelmoinnissa, joka auttaa sinua modulaarisen ja uudelleenkäytettävän koodin kirjoittamisessa. Tässä oppaassa olet tutustunut perusasioihin pääsymodifieroijista, konstruktoreista ja metodikutsuista periytymiseen liittyen.
Usein kysytyt kysymykset
Kuinka pääsen käsiksi private-muuttujiin aliluokassa?Private-muuttujiin aliluokassa ei voida suoraan päästä käsiksi. Käytä getter- ja setter-metodeita.
Mikä on ero protected- ja private- välillä?protected sallii pääsyn aliluokassa ja samassa paketissa, kun taas private on vain omassa luokassa saavutettavissa.
Onko minun määritettävä konstruktoreita aliluokassa?Kyllä, jos olet muokannut yläluokan konstruktoria, sinun on määritettävä myös konstruktoreita aliluokassa vastaavasti.
Voinko vapaasti ylittää yläluokkien metodeja aliluokissa?Kyllä, voit ylittää metodeja, jotka eivät ole merkittyjä final tai static, aliluokassa ottaaksesi käyttöön erityistä käyttäytymistä.