Razlika između preopterećenja vs prevladavanja

Prije nego što zaronimo duboko u razlike između Overloading vs Overriding, moramo razumjeti što oni zapravo jesu i scenarije u kojima se oni posebno koriste? Novopečeni ljudi na Javi često se zbune između njih dvoje, ali se potpuno razlikuju jedan od drugog i koriste se u njihovim specifičnim scenarijima. Preopterećenje metoda je kada imamo više metoda s istim imenom, ali različitog potpisa. Potpisi uključuju broj parametara metode, vrstu podataka parametara. Metoda povratka nije uključena u potpis. To se radi kako bi se osigurala funkcionalnost ponovne upotrebe istog naziva metode i povećala čitljivost programa. Nadjačavanje metoda događa se u slučaju nasljeđivanja u kojem izvedena klasa nasljeđuje svojstva iz osnovne klase. To uključuje definiranje iste metode osnovne klase u izvedenoj klasi s istim parametrom i vrstom povratka kako bi se definirala svaka posebna funkcionalnost / implementacija te metode u izvedenoj klasi.

Razmislite o scenariju u kojem programer mora pronaći područje geometrijske figure. Područje svake figure razlikuje se jedna od druge. Na primjer, za pronalaženje područja kvadrata potreban je samo jedan parametar 'strana', za pravokutnik su potrebna dva parametra 'dužina i širina', dok je za polumjer kruga potreban polumjer koji može biti decimalni. Da bi se riješila ova svrha, vrši se preopterećenje u kojem područje metode ima različite parametre i vrstu podataka za područje različitih figura. Razmislite o situaciji u bankarskom sustavu, iako je više metoda i postupaka za sve zaposlenike isto, osim što su neke poput kamata za normalne i starije osobe različite. U ovom se slučaju koristi prevladavanje metoda s različitim implementacijama metode kamatnih stopa u klasi normalnih i starijih građana koji nasljeđuju osnovnu klasu 'Bankovne stope'.

Usporedba između preopterećenja i pretjerivanja (Infographics)

Ispod je top 7 usporedba između preopterećenja vs prevladavanja :

Ključne razlike između preopterećenja u odnosu na prevladavanje

Raspravimo o nekim glavnim ključnim razlikama između Preopterećenja vs Prevladavanja:

  1. U preopterećenju metode metode mogu imati iste ili različite specifikare / modifikatore pristupa u nazivu metode, dok u načinu pretjerivanja metoda osnovnog slučaja (metoda poništenja) mora imati ograničeni pristup specifikatora od metode nadređene klase. Na primjer, ako je metoda osnovne klase zaštićena, tada nije dopuštena dječja metoda privatna.
  2. U usporedbi u pogledu performansi, preopterećenje ima bolju izvedbu u usporedbi s Overriding jer se preopterećenje metode vrši u vrijeme sastavljanja.
  3. Povratna vrsta metode nikada nije dio metode Preopterećenje, stoga nije važno imaju li različite preopterećene metode isti ili različit tip povratka, dok u Metodi prevladavanja povratnog tipa i metode roditeljske i osnovne klase moraju biti potpuno iste,
  4. Kada govorimo o vezivanju, Preopterećenje ima statičko vezivanje dok Prenamjenjivanje ima dinamičko vezivanje.
  5. Iznimka bačena metodom nije bitna kod preopterećene metode ako jedna metoda baca iznimku, druge preopterećene metode mogu / ne mogu izbaciti istu ili drugačiju iznimku, ali u slučaju preglasavanja, metoda Overriding (metoda u izvedenom razredu) ne može izbaciti iznimku više hijerarhije od prepisana metoda (metoda u osnovnoj klasi).
  6. Svi specifikatori poput privatnih, krajnjih i statičkih ne mogu se koristiti u preglasavanju metoda, dok su svi specificirani za pristup dopušteni u preopterećenju metode.

Usporedna tablica preopterećenja vs prevladavanja

Donja tablica sažima usporedbe između Preopterećenje vs Prevladavanje:

S.No. preopterećenje najvažniji
1Preopterećenje metoda vrši se kako bi se poboljšala definicija metoda prema različitim situacijama.Poništavanje metoda vrši se kako bi se osigurala specifična implementacija metoda definiranih u roditeljskoj klasi.
2Metoda Preopterećenje se vrši u jednoj klasi u kojoj jedna klasa ima različite definicije metode.Poništavanje metoda vrši se između dvije klase koje imaju međusobni odnos IS-A (Nasljeđivanje).
3Metoda Preopterećenje se vrši u vrijeme prevođenja i otuda je poznato pod nazivom Polimorfizam vremena sažimanja.Nadjačavanje metoda vrši se tijekom vremena izvođenja i otuda je poznato kao polimorfizam vremena izvođenja.
4Poredak parametara, vrsta podataka i broj parametara moraju se razlikovati za Preopterećenje metoda.Poredak parametara, vrsta podataka i broj moraju biti isti za Poništavanje metoda.
5Povratna vrsta metode može biti ista ili različita u slučaju preopterećenja metode. To uopće nije važno.Povratak vrste metode mora biti isti u klasi roditelja i djece u slučaju prevladavanja metode.
6Statičke metode mogu biti preopterećene, tj. Možemo imati različite statičke metode preopterećene u istoj klasi.Statičke metode se nikada ne mogu prevladati, tj. Statička metoda u roditeljskoj klasi i osnovnoj klasi nema međusobnog odnosa.
7Privatne i završne metode mogu se preopteretiti u klasi, tj. Klasa može preopteretiti više od 1 privatne i završne metode.Privatne i završne metode nikada se ne mogu zaobići u dječjoj klasi.

Primjer preopterećenja metode:

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));
)
)

Izlaz:

Površina trga 100
Površina pravokutnika 120

U gornjem primjeru, metoda 'area ()' je preopterećena i ima različite parametre u obje preopterećene metode. Kao što područje treba saznati i za kvadrat i za pravokutnik, ali s različitim parametrima.

Primjer prevladavanja metode:

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();
)
)

Izlaz:

Cijena starijeg stanovništva je 4, 5%

U gornjem primjeru, metoda 'rate ()' nadjačava se u izvedenoj klasi 'SeniorCitizen', jer i mi želimo metode stope u klasi SeniorCitizen, ali s drugačijom implementacijom.

Zaključak

Gornje objašnjenje jasno pokazuje razliku između preopterećenja u odnosu na prevladavanje i specifičnih scenarija u kojima se to dvoje koristi. Prije programiranja potrebno je razumjeti ove temeljne Java koncepte jer oni čine osnovu mnogih stvari i pomažu u jednostavnom razumijevanju naprednijih koncepata.

Preporučeni članci

Ovo je vodič za najveću razliku između Preopterećenje vs Prekoračenje. Ovdje također raspravljamo o preopterećenju vs prevladavanju ključnih razlika s infografikom i tablici usporedbe. Možete također pogledati sljedeće članke da biste saznali više -

  1. Funkcionalno programiranje vs OOP
  2. Što je prevladavanje u JavaScript-u?
  3. Kako preopterećenje funkcionira u PHP-u?
  4. Pregled preopterećenja u C #
  5. Prevladavanje u Javi
  6. Python preopterećenje
  7. Preopterećenje i preglasavanje u C #

Kategorija: