Разлика између преоптерећења вс превладавања

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

Размислите о сценарију у којем програмер мора пронаћи подручје геометријске фигуре. Подручје сваке фигуре варира једна од друге. На пример, за проналажење подручја квадрата потребан је само један параметар „страна“, за правоугаоник су потребна два параметра „дужина и ширина“, док је за радијус круга потребан радијус који може бити децимални. Да би се решило ову сврху, врши се преоптерећење у коме подручје методе има различите параметре и тип података за подручје различитих фигура. Размислите о ситуацији у банкарском систему, мада су вишеструке методе и поступци за све запослене исти, осим што су неке попут камата за нормалне и старије особе различите. У овом случају користи се прегласавање метода с различитим имплементацијама каматних стопа методе и у класи нормалне и старије животне доби који насљеђују основну класу „банкарске стопе“.

Упоређивање између преоптерећења и прегласавања (Инфограпхицс)

Испод је топ 7 поређења између преоптерећења вс превладавања :

Кључне разлике између преоптерећења вс прегласавања

Разговарајмо о неким главним кључним разликама између Преоптерећења вс Прекорачења:

  1. У преоптерећењу метода, методе могу имати исте или различите спецификаре / модификаторе приступа у називу методе, док у Методу прегласавања метода базног случаја (метода прегласавања) мора имати ограничени приступ спецификатора него метода родитељске класе. На примјер, ако је метода основне класе заштићена, тада дјечја метода приватна није дозвољена.
  2. Ако се упореди у погледу перформанси, преоптерећење има боље перформансе у поређењу са прегласавањем јер се преоптерећење метода врши у време компилације.
  3. Повратни тип методе никада није дио методе. Преоптерећење, стога није важно да ли различите преоптерећене методе имају исти или различит тип повратка, док у начину превладавања повратног типа и методе родитељске и основне класе морају бити потпуно исте. .
  4. Када говоримо о везивању, Преоптерећење има статичко везивање док Прекомерно оптерећење има динамичко везивање.
  5. Изузетак бачен методом није важан код преоптерећеног поступка ако једна метода баца изузетак, друге преоптерећене методе могу / не могу да баце исти или другачији изузетак, али у случају прегласавања, метода прегласавања (метода у изведеном разреду) не може избацити изузетак више хијерархије од преписана метода (метода у основној класи).
  6. Сви спецификатори попут приватних, крајњих и статичких не могу се користити у прегласавању метода, док су сви спецификатори приступа дозвољени у преоптерећењу метода.

Табела упоређивања преоптерећења вс превлачења

Табела у наставку резимира поређења између Преоптерећења вс Прекорачења:

С.Но. Преоптерећење Превладавајући
1Преоптерећење метода се врши да би се побољшала дефиниција метода према различитим ситуацијама.Поништавање метода врши се тако да се обезбеди специфична примена метода дефинисаних у родитељској класи.
2Метода Преоптерећење се врши у једној класи у којој једна класа има различите дефиниције методе.Поништавање метода врши се између две класе које имају однос ИС-А (Наслеђивање).
3Метода Преоптерећење се врши у време компилације и отуда је познато као Полиморфизам у компиларном времену.Пребројавање метода се врши током времена извођења и отуда је познато као полиморфизам рунтиме.
4Поредак параметара, тип података и број параметара морају се разликовати за Преоптерећење метода.Наручивање параметара, тип података и број морају бити исти за Поништавање метода.
5Повратна врста методе може бити иста или различита у случају преоптерећења методе. То уопште није важно.Повратни тип методе мора бити исти у класи родитеља и дјеце у случају прегласавања метода.
6Статичке методе могу бити преоптерећене, тј. Можемо имати различите статичке методе преоптерећене у истој класи.Статичке методе се никада не могу превладати, тј. Статичка метода у родитељској и основној класи нема међусобне везе.
7Приватне и завршне методе могу се преоптеретити у класи, тј. Класа може преоптеретити више од 1 приватне и завршне методе.Приватне и завршне методе се никада не могу превладати у дечијем разреду.

Пример преоптерећења метода:

class FIgures(
public int area(int side)
(
return side*side;
)
public int area(int length, int breadth) //method overloading
(
return length*breadth;
)
public static void main(String() args)
(
Figures f = new Figures ();
System.out.println(“Area of Square “+ f.area(10));
System.out.println(“Area of Rectangle “+ f.area(12, 10));
)
)

Излаз:

Површина 100
Површина правоугаоника 120

У горњем примеру, метода 'ареа ()' је преоптерећена и има различите параметре у обе преоптерећене методе. Као што подручје треба да утврди и за квадрат и за правокутник, али са различитим параметрима.

Пример прегласавања метода:

class BankRates( // parent(base) class
void rates()
(
System.out.println(“Rates for normal citizen is 3.5%”);
)
)
class SeniorCItizen extends BankRates( //child class inheriting parent class
void rates() // method overriding
(
System.out.println(“Rates for senior citizens is 4.5%”);
)
)
class Bank(
public static void main(String() args)
(
SeniorCItizen sc = new BankRates(); sc.rates();
)
)

Излаз:

Цене за старије особе су 4, 5%

У горњем примеру, метода 'рате ()' се превладава у изведеној класи 'СениорЦитизен', јер и ми желимо методе стопе у класи СениорЦитизен, али са другачијом имплементацијом.

Закључак

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

Препоручени чланци

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

  1. Функционално програмирање вс ООП
  2. Шта је превладавање у ЈаваСцрипт-у?
  3. Како преоптерећење функционише у ПХП-у?
  4. Преглед преоптерећења у Ц #
  5. Превладавање у Јави
  6. Питхон Оверлоадинг
  7. Преоптерећење и прегласавање у Ц #

Категорија: