Која је разлика између преоптерећења метода и замене?



Овај чланак покрива кључне разлике између преоптерећења метода и замене у јави са разним примерима, укључујући супер кључну реч и разна правила.

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

Шта је преоптерећење метода у Јави?

Преоптерећење методе омогућава да метода има исто име које се разликује на основу аргумената или врста аргумената. Може се повезати са полиморфизмом током компајлирања. Следи неколико упута које морамо имати на уму приликом преоптерећења метода у Јави.





  • Не можемо преоптеретити тип повратка.

  • Иако можемо преоптеретити , аргументи или улазни параметри морају бити различити.



  • Не можемо преоптеретити две методе ако се разликују само по статичкој кључној речи.

  • Као и остале статичке методе, и метода маин () такође може бити преоптерећена.

преоптерећење метода - преоптерећење и премошћавање метода у јава- едуреки



Погледајмо једноставан програм да бисмо разумели како преоптерећење метода ради у питхону.

јавна класа Див {јавни инт див (инт а, инт б) {ретурн (а / б)} публиц инт див (инт а, инт б, инт ц) {ретурн ((а + б) / ц)} публиц статиц воид маин (Стринг аргс []) {Див об = нови Див () об.див (10, 2) об.див (10, 2, 3)}}
 Излаз: 5 4

У горњем програму имамо две методе са истим именом, али различитим параметрима. Тако функционише преоптерећење методе .

Зашто преоптерећење метода?

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

Преоптерећење главне () методе:

Следи пример преоптерећења методе маин () у јави.

јавна класа Едурека {публиц статиц воид маин (Стринг [] аргс) {Систем.оут.принтлн ('хелло') Едурека.маин ('едурекан')} публиц статиц воид маин (Стринг арг1) {Систем.оут.принтлн (' добродошли '+ арг1) Едурека.маин (' велцоме ',' то едурека ')} публиц статиц воид маин (Стринг арг1, Стринг арг2) {Систем.оут.принтлн (' хелло ', + арг1, + арг2)}}
 Излаз: поздрав едурекан поздрав поздрав едурека

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

  • Програм за преоптерећење статичких метода у јави.
тест јавне класе {публиц статиц инт фунц (инт а) {ретурн 100} публиц статиц цхар фунц (инт а, инт б) {ретурн 'едурека'} публиц статиц воид маин (Стринг аргс []) {Систем.оут.принтлн ( фунц (1)) Систем.оут.принтлн (фунц (1,3))}}
 Излаз: 100 едурека
  • Програм за преоптерећење три методе са истим именом.
јавна класа Додај {публиц инт адд (инт а, инт б) {ретурн (а + б)} публиц инт адд (инт а, инт б, инт ц) {ретурн (а + б + ц)} публиц доубле адд (доубле а, доубле б) {ретурн (а + б)} публиц статиц воид маин (Стринг аргс []) {Адд об = нев Адд () об.адд (15,25) об.адд (15,25,35) об .адд (11.5, 22.5)}}
 Излаз: 40 75 34

Шта је надјачавање метода у Јави?

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

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

Замена метода такође помаже у примени рунтиме полиморфизма у јави. Узмимо једноставан пример да бисмо разумели како замена метода функционише у јави.

цласс Парент {воид виев () {Систем.оут.принтлн ('тхис ис а парент цласс метход)}} цласс Цхилд продужује родитељ {воид виев () {Систем.оут.принтлн (' тхис је подређена метода класе)}} публиц статиц воид маин (Стринг аргс []) {Надређени об = нови Родитељ () об.виев () Надређени об1 = ново дете () об1.виев ()
 Излаз: ово је метода класе детета

Правила за поништавање метода

  • Тхе приступ уређивању може дозволити више приступа надјачаној методи.

  • ДО коначни метода не подржава замену методе.

  • Статичка метода се не може надјачати.

  • Приватне методе се не могу надјачати.

  • Тип поврата методе замене мора бити исти.

  • Методу родитељске класе можемо позвати у методу замене помоћу кључне речи супер.

  • ДО градитељ не може се надјачати јер подређена класа и родитељска класа не могу имати конструктор са истим именом.

Пример замене методе

  • Програм за приказ замене помоћу супер кључне речи
класа Родитељ {воид схов () {Систем.оут.принтлн ('метода родитељске класе')} класа Цхилд продужује родитељ {воид схов () {супер.схов () Систем.оут.принтлн ('метода класе детета')} публиц статиц воид маин (Стринг аргс []) {Надређени об = ново дете () об.схов ()}}
 Излаз: метода класе родитеља родитељска метода

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

Следе кључне разлике између преоптерећења метода и замене у Јави.

Преоптерећење метода Надјачавање методе
  • Користи се за повећање читљивости програма
  • Пружа специфичну примену методе која је већ у родитељској класи
  • Изводи се у оквиру исте класе
  • Укључује више класа
  • Параметри се морају разликовати у случају преоптерећења
  • Параметри морају бити исти у случају замене
  • Је пример полиморфизма током компајлирања
  • То је пример полиморфизма током извођења
  • Тип повратка може бити различит, али морате променити и параметре.
  • Тип повратка мора бити исти у поништавању
  • Статичке методе могу бити преоптерећене
  • Замена не укључује статичке методе.

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

ц ++ низ за сортирање

Програмски језик Јава је врхунац у објектно оријентисаном програмирању и укључује пуно апликација. Уз потражњу и популарност, амбициозни програмер Јава-а мора бити вешт у основним концептима програмског језика. Упишите се код Едуреке да започнете своје учење.

Имате питање за нас? молимо вас да то помените у одељку за коментаре овог чланка о „преоптерећењу методе у односу на замену методе у јави“ и јавићемо вам се што је пре могуће.