Razlika med preobremenitvijo in preglasitvijo

Preden se poglobimo v razlike med preobremenitvijo v primerjavi s preobremenitvijo, moramo razumeti, kaj pravzaprav so in scenarije, v katerih se posebej uporabljajo? Novorojenci na Javi se med seboj pogosto zmedejo, a se med seboj popolnoma razlikujejo in uporabljajo v svojih posebnih scenarijih. Preobremenitev metode je takrat, ko imamo več metod z istim imenom, vendar različnimi podpisi. Podpisi vključujejo število parametrov metode, vrsto podatkov parametrov. Vrnitvena metoda ni vključena v podpis. To se naredi za zagotovitev funkcionalnosti ponovne uporabe istega imena metode in povečanja berljivosti programov. Prevladovanje metode se zgodi v primeru dedovanja, pri katerem izpeljani razred podeduje lastnosti iz osnovnega razreda. Vključuje določitev iste metode osnovnega razreda v izpeljanem razredu z istim parametrom in vrsto vrnitve, da bi opredelili kakršno koli specifično funkcionalnost / izvajanje te metode v izpeljanem razredu.

Razmislite o scenariju, v katerem mora programer najti območje geometrijske figure. Območje posamezne figure se med seboj razlikuje. Na primer, za iskanje območja kvadrata je potreben le en sam parameter "stran", za pravokotnik sta potrebna dva parametra "dolžina in širina", medtem ko je za polmer kroga potreben polmer, ki je lahko decimalni. Za rešitev tega namena se izvede preobremenitev, pri kateri ima območje metode različne parametre in vrsto podatkov za območje različnih številk. Pomislite na stanje bančnega sistema, čeprav je več načinov in postopkov za vse zaposlene enakih, razen pri nekaterih, kot so obrestne mere za običajne in starejše občane drugačne. V tem primeru se uporablja prevladovanje metode z različnimi izvedbami obrestnih mer metode v razredu običajnih in starejših državljanov, ki podedujejo osnovni razred "bančne stopnje".

Primerjava med glavo in preobremenitvijo (Infographics)

Spodaj je zgornjih 7 primerjav med preobremenitvijo in preglasitvijo :

Ključne razlike med preobremenitvijo in preglasitvijo

Pogovorimo se o nekaj glavnih ključnih razlik med preobremenitvijo v primerjavi s preglasitvijo:

  1. Pri preobremenitvi metode imajo metode lahko enake ali različne specifikate / modifikatorje dostopa v imenu metode, medtem ko mora imeti metoda preglasitve metode osnovnega primera (metoda prepisa) omejevalnik dostopa z omejenim dostopom kot metoda nadrejenega razreda. Na primer, če je metoda osnovnega razreda zaščitena, potem otroška metoda zasebna ni dovoljena.
  2. Če ga primerjamo glede na zmogljivost, ima preobremenitev boljše rezultate v primerjavi s preglasitvijo, ker se preobremenitev metode opravi v času prevajanja.
  3. Vrnitvena metoda metode nikoli ni del metode. Preobremenitev, zato ni pomembno, ali imajo različne preobremenjene metode isti ali različen tip vrnitve, medtem ko mora biti v načinu preglasovanja vrnitvene metode obeh metod nadrejenega in osnovnega razreda popolnoma enaka. .
  4. Ko govorimo o vezavi, ima Overloading statično vezavo, medtem ko ima Overriding dinamično vezavo.
  5. Izjema, vržena po metodi, pri preobremenjeni metodi ni pomembna, če ena metoda vrže izjemo, druge preobremenjene metode lahko / ne morejo vrziti enake ali drugačne izjeme, vendar v primeru preglasitve, metoda Overriding (metoda v izpeljanem razredu) ne more vrgel izjeme višje hierarhije kot prepisana metoda (metoda v osnovnem razredu).
  6. Vseh specifikatorjev, kot so zasebni, končni in statični, ni mogoče uporabiti pri preglasitvi metode, medtem ko so pri specifični preobremenitvi metod dovoljeni vsi specifičniki za dostop.

Primerjalna tabela preobremenitve v primerjavi s preglasitvijo

Spodnja tabela povzema primerjave med Preobremenitvijo in Prevlado:

S. št. Preobremenitev Prevladujoče
1Preobremenitev metod poteka tako, da se izboljšajo opredelitve metod glede na različne situacije.Prevladovanje metod poteka tako, da se zagotovi specifična izvedba metod, definiranih v nadrejenem razredu.
2Metoda Preobremenitev poteka v enem samem razredu, v katerem je en razred z različnimi definicijami metode.Preglasitev metode poteka med dvema razredoma, ki imata med seboj razmerje IS-A (Dedovanje).
3Metoda Preobremenitev se opravi v času prevajanja in je zato znan kot polimorfizem v času kompilacije.Prevladovanje metode poteka v času izvajanja, zato je znan kot polimorfizem izvajanja.
4Razporeditev parametrov, vrsta podatkov in število parametrov morajo biti pri preobremenitvi metode različni.Razporeditev parametrov, vrsta podatkov in število morajo biti enaki za preglasitev metode.
5Vrnitvena metoda metode je lahko enaka ali različna v primeru preobremenitve metode. To sploh ni pomembno.Vrnitev vrste metode mora biti enaka tako v razredu nadrejenih kot tudi otrok v primeru preglasitve metode.
6Statične metode smo lahko preobremenjeni, tj. Lahko imamo v istem razredu različne statične metode.Statičnih metod ni mogoče nikoli preglasiti, tj. Statična metoda v nadrejenem razredu in osnovnem razredu nima medsebojne zveze.
7Zasebne in končne metode so lahko preobremenjene v razredu, tj. Razred lahko preobremeni več kot 1 zasebno in končno metodo.Zasebne in končne metode v otroškem razredu nikoli ne moremo preglasiti.

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

Izhod:

Površina kvadrata 100
Površina pravokotnika 120

V zgornjem primeru je metoda 'area ()' preobremenjena in ima v obeh preobremenjenih metodah različne parametre. Ker mora območje ugotoviti tako kvadrat kot pravokotnik, vendar z različnimi parametri.

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

Izhod:

Cene za starejše občane znašajo 4, 5%

V zgornjem primeru je metoda 'rate ()' nadomeščena v izpeljanem razredu 'SeniorCitizen', ker želimo, da so metode stopnje tudi v razredu SeniorCitizen, vendar z drugačno implementacijo.

Zaključek

Zgornja razlaga jasno kaže razliko med preobremenitvijo v primerjavi s preglasitvijo in posebnimi scenariji, kjer se ta dva uporabljata. Pred programiranjem je treba razumeti te osnovne koncepte Jave, saj so osnova mnogih stvari in pomaga pri lažjem razumevanju naprednejših konceptov.

Priporočeni članki

To je vodilo za največjo razliko med preobremenitvijo v primerjavi s preglasitvijo. Tukaj razpravljamo tudi o ključnih razlikah s preobremenitvijo v primerjavi s preoblikovanjem in s tabelo za primerjavo. Za več informacij si lahko ogledate tudi naslednje članke -

  1. Funkcijsko programiranje proti OOP
  2. Kaj je prevladujoče v JavaScript?
  3. Kako preobremenitev deluje v PHP-ju?
  4. Pregled preobremenitve v C #
  5. Prevladovanje v Javi
  6. Python preobremenitev
  7. Preobremenitev in preglasitev v C #