Истраживање наслеђивања у програмском језику Јава

Истраживање наслеђивања у програмском језику Јава

Наслеђивање је један од основних концепата објектно оријентисаног програмирања. У програмирању реч наслеђивање представља однос у којем подређена класа преузима стање и понашање родитељске класе.





Сврха наслеђивања у развоју софтвера је да олакша поновну употребу сигурног и поузданог софтвера. Једна од главних предности коришћења наслеђивања је то што елиминише сувишни код у вашим програмима.





промените икону типа датотеке виндовс 10

Како функционише наслеђивање

Идеја наслеђивања је да многе класе или објекти имају неке исте скупове атрибута и метода. Стога, у духу производње поузданог софтвера, нове класе сада могу да се ослањају на већ постојеће сродне класе и, ако је потребно, прошире постојећа стања и понашања.





Прави пример како би наслеђе функционисало било би узети у обзир плодове. Ово је широка ознака која служи за закључавање низа различитих ставки.

Јабука је воће, па тако и поморанџа. Међутим, наранџа није јабука, па не бисте имали воће као једну од залиха ако сте власник продавнице. Можда бисте у свом инвентару могли да имате одељак са воћем, а испод тог одељка имали бисте конкретније ставке попут јабука и поморанџи.



Тако функционише наслеђивање.

Коришћење наслеђивања у Јави

Наслеђивање се може користити у било ком програмском језику који користи парадигму објектно оријентисаног програмирања. Међутим, тачан начин на који се наслеђивање користи зависи од специфичног програмског језика.





На пример, Ц ++ је такође објектно оријентисан програмски језик . Ц ++ подржава оно што је познато као вишеструко наслеђивање, док Јава подржава само једно наслеђивање.

То значи да у Јави родитељска класа може имати много подређених класа, али свака подређена класа може имати само једну надређену класу (једно наслеђивање). Међутим, постоји начин да се постигне индиректно вишеструко наслеђивање у Јави, стварањем односа деда, родитељ и дете.





Креирање родитељске класе у Јави

Процес одабира родитељске класе из документа о софтверским захтевима познат је као објектно оријентисана анализа. Током овог процеса израз а се често користи за идентификацију могућих односа наслеђивања. На основу нашег горњег примера требало би да видите да би воће било наша родитељска класа.

Пример класе родитељског воћа


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
}
}

Један од најзначајнијих аспеката горње надређене класе је модификатор приступа који се користи са сваком декларацијом променљиве. Модификатор заштићеног приступа идеалан је за употребу у надређеним класама јер спречава класе које нису подређене да добију приступ атрибутима података родитељске класе.

Даље у коду се упознајете са конструкторима, геттерима и сетерима који су општи градивни блокови за било коју Јава класу. Коначно, упознали сте се са две методе (сок и јело) које су створене у родитељској класи нашег програма јер су универзалне за све воће - све воће се може јести и сочити.

Креирање подређених класа у Јави

Подређене класе се обично називају специјализоване или изведене класе јер наслеђују стање и понашање од родитеља и често прилагођавају ове атрибуте да буду прецизнији.

Настављајући са нашим примером, требало би да видите зашто би наранџа била одговарајућа подређена класа горње класе воћа.

Пример наранџасте дечије класе


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
}
}

Постоји разлика између тога како изгледа декларација редовне Јава класе и онога што имамо у горњем коду. Кључна реч ектендс се користи у Јави да омогући наслеђивање.

У нашем примеру изнад, подређена класа (наранџаста) проширује родитељску класу (воће). Према томе, стање и понашање класе воћа сада могу приступити и изменити класу наранџе.

Јединствени атрибут који има наша класа наранџе идентификован је именом променљиве супремес (што је званични назив за мале сегменте који се налазе у поморанџама). Ту долази до изражаја специјализација; немају сви плодови врхове, али све поморанџе, па је резервисање променљиве супремес за класу наранџе логично.

Додавање методе љуштења већ постојећим методама једења и сокова такође је логично јер иако се не може огулити све воће, наранџе се често огуљују.

Требали бисте имати на уму да ако не намјеравамо промијенити постојеће методе исхране и сокова, не бисмо их требали укључити у наш разред наранџе. Методе у класи наранџе замењују све сличне методе у класи воћа. Дакле, ако се све воће једе и сочи на исти начин, не бисмо морали да стварамо ове методе у класи наранџе.

Конструктори улога играју у наслеђу

Подразумевано, конструкторе родитељске класе наслеђују подређене класе. Стога, ако се креира објект подређене класе, то значи да се и објект родитељске класе аутоматски ствара.

Враћајући се на наш пример, сваки пут када се направи нови наранџасти објекат, ствара се и воћни објекат јер је наранџа воће.

Иза кулиса, када се креира објект подређене класе, прво се позива конструктор родитељске класе, а затим конструктор подређене класе. У нашој наранџастој подређеној класи изнад, ако се направи наранџасти објекат без икаквих параметара, позваће се наш подразумевани конструктор класе воћа, а затим наш подразумевани извођач наранџасте класе.

Супер метода у нашем горњем примарном конструктору изнад је неопходна јер одређује да примарни конструктор - а не подразумевани конструктор - родитељске класе треба да се позове сваки пут када се створи наранџасти објекат са параметрима.

Сада можете користити наслеђивање у Јави

Из овог чланка сте могли научити шта је наслеђивање, како функционише и зашто је тако важан концепт у програмирању. Сада можете да креирате своје односе наслеђивања помоћу програмског језика Јава. Штавише, сада знате како да заобиђете једно правило наслеђивања Јаве стварањем односа бака и деда.

Заслуга за слику: Андреас Вохлфахрт / Пекелс

Објави Објави Твеет Емаил Како организовати свој објектно оријентисани код наслеђивањем

Правилно усмеравање објектно оријентисаног програмирања значи да морате знати о наслеђивању и како то може поједноставити кодирање и смањити грешке.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Јава
  • Објектно оријентисано програмирање
О аутору Кадеисха Кеан(Објављен 21 чланак)

Кадеисха Кеан је програмер софтвера и писац техничке/технологије. Она има изразиту способност да поједностави неке од најсложенијих технолошких концепата; производњу материјала који може лако разумети сваки почетник у технологији. Одушевљена је писањем, развојем занимљивог софтвера и путовањем по свету (кроз документарне филмове).

Више од Кадеисха Кеан

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили