Perintö on yksi olio-ohjelmoinnin peruskäsitteistä. Ohjelmoinnissa sana perintö edustaa suhdetta, jossa lapsiluokka omaksuu vanhemmuuden luokan ja käyttäytymisen.

Perinnön tarkoituksena ohjelmistokehityksessä on helpottaa turvallisten ja luotettavien ohjelmistojen uudelleenkäyttöä. Yksi perinnön käytön tärkeimmistä eduista on, että se poistaa tarpeettoman koodin ohjelmistasi.

Kuinka perintö toimii

Perinnön idea on, että monilla luokilla tai esineillä on samat määritteet ja menetelmät. Siksi luotettavien ohjelmistojen tuottamisen hengessä uudet luokat voivat nyt hyödyntää olemassa olevia vastaavia luokkia ja tarvittaessa laajentaa olemassa olevia tiloja ja käyttäytymistä.

Todellinen esimerkki perinnön toiminnasta olisi hedelmien huomioon ottaminen. Tämä on laaja etiketti, jota käytetään kapseloimaan joukko erilaisia ​​kohteita.

Omena on hedelmä ja niin on myös oranssi. Oranssi ei kuitenkaan ole omena, joten sinulla ei olisi hedelmiä yhtenä varastotuotteistasi, jos omistat kaupan. Ehkä sinulla voi olla hedelmiä koskeva osasto varastossasi, ja kyseisen osan alla sinulla olisi tarkempia tuotteita, kuten omenoita ja appelsiineja.

instagram viewer

Näin perintö toimii.

Perinnön käyttäminen Java-sovelluksessa

Perintöä voidaan käyttää kaikilla ohjelmointikielillä, jotka käyttävät olio-ohjelmoinnin paradigma. Perinnön tarkka tapa riippuu kuitenkin ohjelmointikielestä.

Esimerkiksi, C ++ on myös olio-ohjelmointikieli. C ++ tukee ns. Useita perintöjä, kun taas Java tukee vain yhtä perintöä.

Tämä tarkoittaa sitä, että Javassa vanhempaluokalla voi olla useita lapsiluokkia, mutta jokaisella lapsiluokalla voi olla vain yhden vanhemman luokka (yksi perintö). On kuitenkin tapa saavuttaa epäsuora moniperintö Java-tilassa luomalla isovanhempien, vanhempien ja lasten suhde.

Vanhempaluokan luominen Java-sovelluksessa

Vanhempaluokan valinta prosessiohjelmistovaatimuksista kutsutaan olio-suuntautuneeksi analyysiksi. Tämän prosessin aikana ilmaisua "on a" käytetään usein tunnistamaan mahdolliset perintösuhteet. Yllä olevan esimerkin perusteella sinun pitäisi pystyä näkemään, että hedelmä olisi meidän vanhempaluokka.

Hedelmien vanhempien luokan esimerkki


julkinen luokka Hedelmät {
// Muuttujan ilmoitus
suojattu String siemenet;
suojattu String skinColor;
suojattu merkkijono maku;
// Oletusrakentaja
julkinen hedelmä () {
siemen = "";
skinColor = "";
maku = "";
}
// Ensisijainen rakentaja
julkinen hedelmä (String seed, String skinColor, String maku) {
tämä.siemen = siemen;
this.skinColor = skinColor;
tämä.maku = maku;
}
// ketjut ja asettimet
julkinen merkkijono getSeed () {
paluu siemenet;
}
public void setSeed (String seed) {
tämä.siemen = siemen;
}
julkinen merkkijono getSkinColor () {
paluu ihonväri;
}
public void setSkinColor (String skinColor) {
this.skinColor = skinColor;
}
julkinen merkkijono getTaste () {
palata maku;
}
public void setTaste (Jousimaku) {
tämä.maku = maku;
}
// syödä menetelmä
public void syö () {
// yleinen koodi kuinka syödä hedelmää
}
// mehumenetelmä
public void mehu () {
// yleinen koodi hedelmien mehustamisesta
}
}

Yksi ylläolevan emoluokan merkittävimmistä näkökohdista on pääsymuuttuja, jota käytetään jokaisen muuttujailmoituksen yhteydessä. "Suojattu" pääsymuuttuja on ihanteellinen käytettäväksi vanhempaluokissa, koska se estää muita kuin lapsiluokkia pääsemästä vanhempaluokan tietomääritteisiin.

Koodin alapuolella esitellään rakentajia, hahmottimia ja asettimia, jotka ovat yleisiä rakennuspalikoita mille tahansa Java-luokalle. Lopuksi sinulle esitellään kaksi menetelmää (mehu ja syöminen), jotka luodaan ohjelmamme vanhempien luokassa, koska ne ovat universaaleja kaikille hedelmille - kaikkia hedelmiä voidaan syödä ja mehuttaa.

Lapsiluokkien luominen Java-sovelluksessa

Lapsiluokkia kutsutaan yleensä erikoistuneiksi tai johdetuiksi luokiksi, koska ne perivät tilan ja käyttäytymisen vanhemmilta ja mukauttavat nämä määritteet usein tarkemmin.

Jatkamalla esimerkkiä, sinun pitäisi pystyä ymmärtämään, miksi oranssi olisi sopiva lapsiluokka yllä olevasta hedelmäluokasta.

Esimerkki oranssista lapsiluokasta


julkinen luokka Orange laajentaa hedelmää {
// muuttujan ilmoitus
yksityiset korkeimmat;
// oletusrakentaja
julkinen oranssi () {
ylin = 0;
}
// ensisijainen rakentaja
julkinen oranssi (String seed, String skinColor, String maku, int korkeimmat) {
super (siemen, ihonväri, maku);
this.supremes = korkeimmat;
}
// ketjut ja asettimet
public int getsupremes () {
paluu korkeimmat;
}
public void setsupremes (int supremes) {
this.supremes = korkeimmat;
}
// syödä menetelmä
public void syö () {
// miten syödä appelsiini
}
// mehumenetelmä
public void mehu () {
// miten mehu ja appelsiini
}
// kuorintamenetelmä
public void peel () {
// miten kuori appelsiini
}
}

Tavallisen Java-luokan ilmoituksen ja sen yllä olevan koodin välillä on ero. Avainsana "laajentaa" on se, mitä Java-sovelluksessa käytetään perimisen mahdollistamiseksi.

Esimerkissämme lapsiluokan (oranssi) yläpuolella vanhempainluokka (hedelmä) jatkuu. Siksi oranssiluokka voi nyt käyttää hedelmäluokan tilaa ja käyttäytymistä ja muokata sitä.

Oranssi luokkamme ainutlaatuinen ominaisuus identifioidaan muuttujien nimien korkeimpien ominaisuuksien kanssa (joka on appelsiinien pienten segmenttien virallinen nimi). Täällä erikoistuminen tulee pelaamaan; kaikilla hedelmillä ei ole ylempiä, mutta kaikilla appelsiineilla on, joten ylemmän muuttujan varaaminen oranssille luokalle on loogista.

"Kuori" -menetelmän lisääminen olemassa oleviin "syö" ja "mehu" -menetelmiin on myös loogista, koska vaikka kaikkia hedelmiä ei voida kuoriutua, appelsiinit kuoritaan usein.

Sinun on pidettävä mielessä, että jos emme aio muuttaa olemassa olevia "syö" ja "mehu" -menetelmiä, meidän ei tarvitse sisällyttää niitä appelsiiniluokkaan. Oranssin luokan menetelmät ohittavat kaikki vastaavat menetelmät hedelmäluokassa. Joten jos kaikki hedelmät syödään ja mehustetaan samalla tavalla, meidän ei tarvitse luoda näitä menetelmiä appelsiiniluokassa.

Roolirakentajat pelaavat perinnössä

Oletusarvoisesti vanhempien luokkien rakentajat perivät alaluokat. Jos siis luodaan alaluokkaobjekti, se tarkoittaa, että myös yläluokkaobjekti luodaan automaattisesti.

Palataksemme esimerkkiin, joka kerta, kun uusi oranssi esine luodaan, luodaan myös hedelmäobjekti, koska oranssi on hedelmä.

Kulissien takana, kun lapsiluokan objekti luodaan, ensin kutsutaan vanhempien luokan konstruktoria, jota seuraa lapsiluokan rakentaja. Yllä olevassa oranssissa lapsiluokassamme, jos luodaan oranssi esine ilman parametreja, kutsutaan oletushedelmäluokan konstruktori, jota seuraa oletusoranssiluokan urakoitsija.

Yllä oleva "super" -menetelmä on välttämätön, koska se määrittää, että ensisijainen konstruktori - ja ei oletusrakentaja - hedelmäluokan vanhempi tulisi kutsua aina, kun oranssi objekti parametreillä on luotu.

Nyt voit käyttää perintöä Java-ohjelmassa

Tästä artikkelista voit oppia, mikä on perintö, miten se toimii ja miksi se on niin tärkeä käsite ohjelmoinnissa. Voit nyt luoda perintösuhteet Java-ohjelmointikielellä. Lisäksi tiedät nyt, kuinka kiertää Javan yksittäinen perintösääntö luomalla isovanhempien suhde.

Kuvahyvitys: Andreas Wohlfahrt /Pexels

Sähköposti
Kuinka järjestää olio-koodi perinnöllä

Kohdistetun ohjelmoinnin oikea saaminen tarkoittaa, että sinun on tiedettävä perinnöstä ja siitä, miten se voi yksinkertaistaa koodausta ja vähentää virheitä.

Lue seuraava

Liittyvät aiheet
  • Ohjelmointi
  • Java
  • Olio-ohjelmointi
Kirjailijasta
Kadeisha Kean (3 artikkelia julkaistu)

Kadeisha Kean on Full-Stack-ohjelmistokehittäjä ja tekninen / teknologinen kirjoittaja. Hänellä on selkeä kyky yksinkertaistaa joitain monimutkaisimpia teknisiä käsitteitä; tuottaa materiaalia, joka on helposti ymmärrettävissä kaikille tekniikan aloittelijoille. Hän on intohimoisesti kirjoittaminen, mielenkiintoisten ohjelmistojen kehittäminen ja matkustaminen ympäri maailmaa (dokumenttielokuvien kautta).

Lisää artistilta Kadeisha Kean

Tilaa uutiskirjeemme

Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja erikoistarjouksia!

Vielä yksi askel !!!

Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.

.