Pärand on objektorienteeritud programmeerimise (OOP) keskne kontseptsioon ja seda peetakse sageli üheks ehituskiviks efektiivsuse suurendamisel. Selles õpetuses süvendad oma arusaama pärandist Javas. Sa õpid, kuidas kasutada ligipääsukohandajaid, konstruktorit ning milline roll on kapseldamisel pärandis.
Olulisemad järeldused
- Pärand võimaldab klassi omaduste ja meetodite pärimist.
- Ligipääsukohandaja private piirab muutuja või meetodi kasutamist, samas kui protected võimaldab laiemat juurdepääsu klassides, mis pärivad algsest klassist.
- Konstruktorid tuleb alams klassis kutsuda, et objekte õigesti instantsmeerida.
- Interfaci meetodeid saab üldistada, kui on mitu spetsiifilist klassi.
Samm-sammult juhend
Ligipääsukohandajad: protected vs. private
Kui deklareerid klassis nagu Sõiduk muutuja (nt värv) protected’ina, siis saad seda muutuja kasutada tuletatud klassis (nt Auto) otse. Kui deklareerid aga muutuja private’ina, ei saa sa alams klassis sellele otse juurde pääseda.

See tähendab konkreetselt, et private-muutujatele pääseb juurde ainult setterite ja getterite kaudu.
Näide näitab, et peame kasutama setFarbe ja getFarbe, et pääseda juurde private muutuja värvile.

Kui muutuja on deklareeritud protected’ina, saad sellele lihtsalt Auto-klassist juurde pääseda ja väärtust muuta.
Konstruktorite kasutamine pärandis
Alams klassi määramisel pead veenduma, et ülemklassi konstruktorit kutsutakse õigesti.

See tagab, et värv initialiseeritakse õigesti auto objekti loomisel.

Veendu, et sa määrad alams klassis konstruktorit, mis edastab ülemklassi parameetrid sobivalt.
Pärimine ja meetodikutsed
Need kaks klassi, Sõiduk ja Auto, võimaldavad sul kasutada üldisi muutujaid ja meetodeid. Kui määrad meetodi Sõidukis, saad seda meetodit kasutada ka Autos, ilma et peaksid seda uuesti kirjutama.

Siin kutsutakse üles meetod vehicleColorOutput ja see väljastab värvuse, mis saadakse meetodi getFarbe kaudu.
Meetoditele juurdepääsu piirangud
Kui proovid alams klassis kutsuda meetodit, mis ei ole klassile saadaval, saad kompileerimisvea. Meie näites peab Sõiduki objekt olema edastatud, et kutsuda meetodit getFarbe.

Praktiliselt tähendab see, et pead veenduma, et meetod vastab sinu andmetüübile, enne kui seda kutsud. Seega, saad edastada kas jalgratta, auto või mõlemad meetodisse, mis ootab ainult Sõiduki objekte.
Näide instantsmeetodite kutsumisest staatilistes kontekstides
Pane tähele, et staatilistes meetodites (static) ei saa this-käitajat kasutada, kuna see ei viita konkreetsele instantsile. Sellistes olukordades peaksid võib-olla kasutama teist meetodit või ümber korraldama loogikat.

Selle kutsumise abil väljastatakse värv õigetel mänguauto objektil.
Kokkuvõte - Pärand Java-s: Algajatele juhend
Pärand on oluline kontseptsioon Java programmeerimises, mis aitab sul koodi modulariseerida ja taaskasutada. Selles õpetuses oled tutvunud põhitõdedega ligipääsukohandajatest, konstruktoritest ja meetoditest seoses pärandiga.
Korduma kippuvad küsimused
Kuidas pääsen alams klassis private muutujatele?Alams klassis ei saa private muutujaid otse kasutada. Kasuta getterite ja setterite meetodeid.
Mis vahe on protected ja private vahel?protected lubab alams klassis ja samas paketis juurdepääsu, samas kui private on kättesaadav ainult oma klassis.
Kas pean konstruktorid alams klassis määrama?Jah, kui oled ülemklassi konstruktorit kohandanud, pead ka alams klassis konstruktorid vastavalt määrama.
Kas saan ülemklassi meetodeid alams klassis vabalt ülekirjutada?Jah, saad alams klassis ülekirjutada meetodeid, mis ei ole märgitud final või static, et rakendada spetsiifilist käitumist.