Istraživanje nasljeđivanja u programskom jeziku Java

Istraživanje nasljeđivanja u programskom jeziku Java

Nasljeđivanje je jedan od osnovnih koncepata objektno orijentiranog programiranja. U programiranju riječ nasljeđivanje predstavlja odnos u kojem podređena klasa preuzima stanje i ponašanje roditeljske klase.





Svrha nasljeđivanja u razvoju softvera je omogućiti ponovnu upotrebu sigurnog i pouzdanog softvera. Jedna od glavnih prednosti korištenja nasljeđivanja je to što eliminira suvišni kôd u vašim programima.





aplikaciju za pronalaženje odjeće sa slike

Kako funkcionira nasljeđivanje

Ideja nasljeđivanja je da mnoge klase ili objekti imaju neke iste skupove atributa i metoda. Stoga se, u duhu proizvodnje pouzdanog softvera, nove klase sada mogu oslanjati na već postojeće srodne klase i po potrebi proširiti postojeća stanja i ponašanja.





Pravi primjer kako bi nasljeđivanje funkcioniralo bilo bi uzeti u obzir plodove. Ovo je široka oznaka koja služi za zaključavanje niza različitih stavki.

Jabuka je voće, pa tako i naranča. Međutim, naranča nije jabuka, pa ne biste imali voće kao jedan od svojih zaliha da posjedujete trgovinu. Možda biste u svom inventaru mogli imati odjeljak s voćem, a ispod tog odjeljka imali biste konkretnije stavke poput jabuka i naranči.



Tako funkcionira nasljeđivanje.

Korištenje nasljeđivanja u Javi

Nasljeđivanje se može koristiti u bilo kojem programskom jeziku koji koristi paradigmu objektno orijentiranog programiranja. Međutim, točan način na koji se nasljeđivanje koristi ovisi o specifičnom programskom jeziku.





Na primjer, C ++ je također objektno orijentirani programski jezik . C ++ podržava ono što je poznato kao višestruko nasljeđivanje, dok Java podržava samo jedno nasljeđivanje.

To znači da u Javi roditeljska klasa može imati mnogo podređenih klasa, ali svaka podređena klasa može imati samo jednu nadređenu klasu (jedno nasljeđivanje). Međutim, postoji način da se postigne neizravno višestruko nasljeđivanje u Javi, stvaranjem odnosa baka i djed, roditelj i dijete.





Stvaranje roditeljske klase u Javi

Postupak odabira roditeljske klase iz dokumenta softverskih zahtjeva poznat je kao objektno orijentirana analiza. Tijekom ovog procesa izraz a se često koristi za identifikaciju mogućih nasljednih odnosa. Na temelju našeg gornjeg primjera trebali biste vidjeti da bi voće bilo naš roditeljski razred.

Primjer klase roditelja voća


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

Jedan od najznačajnijih aspekata gornje nadređene klase je modifikator pristupa koji se koristi sa svakom deklaracijom varijable. Modifikator zaštićenog pristupa idealan je za upotrebu u roditeljskim klasama jer sprječava klase koje nisu podređene da dobiju pristup atributima podataka roditeljske klase.

Dalje u kodu upoznat ćete s konstruktorima, getterima i postavljačima koji su općeniti građevni blokovi za bilo koju Java klasu. Konačno, upoznat ćete se s dvije metode (sok i jesti) koje su stvorene u roditeljskoj klasi našeg programa jer su univerzalne za sve voće - sve se voće može jesti i sočiti.

Stvaranje podređenih klasa u Javi

Podređene klase obično se nazivaju specijaliziranim ili izvedenim klasama jer nasljeđuju stanje i ponašanje od roditelja i često prilagođavaju te atribute da budu precizniji.

Nastavljajući s našim primjerom, trebali biste vidjeti zašto bi naranča bila prikladna podređena klasa gornje klase voća.

Primjer narančaste dječje klase


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

Postoji razlika između izgleda redovne Java deklaracije klase i onoga što imamo u gornjem kodu. Ključna riječ extends koristi se u Javi da omogući nasljeđivanje.

U našem primjeru iznad podređena klasa (narančasta) proširuje roditeljsku klasu (voće). Prema tome, stanje i ponašanje klase voća sada može pristupiti i promijeniti klasu naranče.

Jedinstveni atribut koji ima naša narančasta klasa poistovjećen je s imenom varijable supremes (što je službeni naziv za male segmente koji se nalaze u narančama). Tu dolazi do izražaja specijalizacija; nemaju svi plodovi vrhove, ali sve naranče, pa je logično rezervirati varijablu supremes za klasu naranče.

Dodavanje metode ljuštenja u već postojeće metode jedenja i soka također je logično jer iako se ne može oguliti sve voće, naranče se često oguljuju.

Morate imati na umu da ako ne namjeravamo promijeniti postojeće metode ishrane i sokova, ne bismo ih trebali uključiti u naš razred naranči. Metode u klasi naranče nadjačavaju svaku sličnu metodu u klasi voća. Dakle, ako se sve voće jede i soči na isti način, ne bismo trebali stvarati ove metode u klasi naranče.

Konstruktori uloga igraju nasljedstvo

Po defaultu, konstruktore roditeljske klase nasljeđuju podređene klase. Stoga, ako se stvori objekt podređene klase, to znači da se objekt roditeljske klase također automatski stvara.

Vraćajući se na naš primjer, svaki put kada se stvori novi narančasti objekt stvara se i voćni objekt jer je naranča voće.

Iza kulisa, kada se stvori objekt podređene klase, prvo se poziva konstruktor roditeljske klase, a zatim konstruktor podređene klase. U našoj narančastoj podređenoj klasi gore, ako je narančasti objekt kreiran bez ikakvih parametara, pozvat će se naš zadani konstruktor klase voća, a zatim naš zadani izvođač narančaste klase.

Super metoda u našem gornjem primarnom konstruktoru gore je neophodna jer specificira da se primarni konstruktor - a ne zadani konstruktor - roditeljske klase voća treba pozivati ​​kad god se stvori narančasti objekt s parametrima.

Sada možete koristiti nasljeđivanje u Javi

Iz ovog članka mogli ste saznati što je nasljeđivanje, kako funkcionira i zašto je tako važan koncept u programiranju. Sada možete stvoriti svoje nasljedne odnose pomoću programskog jezika Java. Nadalje, sada znate kako zaobići jedno pravilo nasljeđivanja Jave stvaranjem odnosa djeda i bake.

Kredit za sliku: Andreas Wohlfahrt / Pekseli

Udio Udio Cvrkut E -pošta Kako naslijediti svoj objektno orijentirani kôd

Pravilno usvajanje objektno orijentiranog programiranja znači da morate znati o nasljeđivanju i kako ono može pojednostaviti kodiranje i smanjiti pogreške.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Java
  • Objektno orijentirano programiranje
O autoru Kadeisha Kean(Objavljen 21 članak)

Kadeisha Kean je programer softvera i pisac tehničke/tehnologije. Ona ima izrazitu sposobnost pojednostavljivanja nekih od najsloženijih tehnoloških koncepata; proizvodnju materijala koji može lako razumjeti svaki početnik u tehnologiji. Oduševljena je pisanjem, razvojem zanimljivog softvera i putovanjem po svijetu (kroz dokumentarne filmove).

Više od Kadeishe Kean

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu