Diferența dintre supraîncărcare și suprasolicitare

Înainte de a ne îndrăgosti în profunzime în diferențele dintre supraîncărcare și suprasolicitare, trebuie să înțelegem care sunt de fapt și scenariile în care sunt utilizate în mod special? Newbies-ul în Java se confundă adesea între cei doi, dar sunt total diferiți unul de celălalt și sunt folosiți în scenariile lor specifice. Supraîncărcarea metodei este atunci când avem mai multe metode cu același nume, dar semnături diferite. Semnăturile includ numărul de parametri ai metodei, tipul datelor de parametri. Tipul de retur al metodei nu este inclus în semnătură. Acest lucru este realizat pentru a oferi funcționalitatea reutilizării aceluiași nume de metodă și pentru a crește lizibilitatea programelor. Metoda Suprasolicitarea se întâmplă în cazul Moștenirii în care clasa derivată moștenește proprietățile din clasa de bază. Implică definirea aceleiași metode de clasă de bază într-o clasă derivată cu același parametru și tip de returnare pentru a defini orice funcționalitate / implementare specifică a acelei metode din clasa derivată.

Luați în considerare un scenariu în care un programator trebuie să găsească zona unei figuri geometrice. Zona fiecărei figuri variază între ele. De exemplu, pentru a găsi aria pătratului este necesar doar un singur parametru „latură”, pentru dreptunghi sunt necesari doi parametri „lungime și lățime”, în timp ce pentru cercul „raza este necesar, care poate fi zecimal. Pentru a rezolva acest scop, supraîncărcarea metodei se face în care zona metodei are parametri diferiți și tip de date pentru o zonă cu cifre diferite. Gândiți-vă la situația sistemului bancar, deși mai multe metode și proceduri pentru toți angajații sunt aceleași, cu excepția unor rate de dobândă similare pentru persoanele normale și persoanele în vârstă. În acest caz, Metoda Suprascriere este utilizată pentru implementarea diferită a ratelor dobânzilor metodelor atât în ​​clasa normală, cât și în cea a persoanelor vârstnice care moștenesc clasa de bază „Rata bancară”.

Comparația dintre cap și cap între supraîncărcare și suprasolicitare (infografie)

Mai jos este Top 7 Comparație între Supraîncărcare și Supraîncărcare :

Diferențe cheie între supraîncărcare și supraîncărcare

Haideți să discutăm unele dintre diferențele cheie majore între supraîncărcare și suprasolicitare:

  1. În supraîncărcarea metodei, metodele pot avea aceleași sau diferite modificatoare de acces în denumirea metodei, în timp ce în Metoda Supravegherea metodei cazului de bază (metoda suprasolicitată) trebuie să aibă un specificator de acces restricționat decât metoda unei clase părinte. De exemplu, dacă metoda unei clase de bază este protejată, metoda copil privat nu este permisă.
  2. Atunci când este comparată în termeni de performanță, supraîncărcarea are o performanță mai bună ca o comparație cu Overriding, deoarece supraîncărcarea metodei se face la timp de compilare.
  3. Tipul de retur al unei metode nu este niciodată o parte a metodei Supraîncărcarea, prin urmare, nu contează dacă metodele supraîncărcate diferite au același tip sau retur diferit, în timp ce în Metoda tipul de retur de ambele metode ale clasei părinte și a clasei de bază trebuie să fie exact același .
  4. Atunci când vorbim despre legare, Supraîncărcarea are legătură statică, în timp ce Supragregarea are legătură dinamică.
  5. Excepția aruncată prin metodă nu contează în metoda supraîncărcată, dacă o metodă aruncă o excepție, alte metode supraîncărcate pot / nu pot arunca aceeași sau diferită excepție, dar în cazul Suprascrierii, metoda Suprascriere (metodă din clasa derivată) nu poate arunca o excepție a ierarhiei superioare decât metoda suprasolicitată (metodă în clasa de bază).
  6. Toate specificațiile, cum ar fi private, finale și statice, nu pot fi utilizate în Metoda Suprascriere, în timp ce toate specificațiile de acces sunt permise în supraîncărcarea metodei.

Tabelul de comparare a supraîncărcării și supraîncărcare

Tabelul de mai jos rezumă comparațiile dintre supraîncărcare și suprasolicitare:

S.No. supraîncărcarea Supracomandarea
1Supraîncărcarea metodei se face pentru a avea o definiție îmbunătățită a metodelor în funcție de diverse situații.Suprascrierea metodei se face pentru a oferi o implementare specifică a metodelor definite în clasa părinte.
2Metoda Supraîncărcarea se face într-o singură clasă în care o clasă are definiții diferite ale unei metode.Metoda Suprascrierea se face între două clase având o relație IS-A (Moștenire) între ele.
3Metoda Supraîncărcarea se face în timp de compilare și, prin urmare, este cunoscută sub numele de Polimorfismul în timp de compilare.Metoda Suprasolicitarea se face la runtime și, prin urmare, este cunoscută sub denumirea de Polimorfism.
4Comanda parametrilor, tipul de date și numărul parametrilor trebuie să fie diferite pentru supraîncărcarea metodei.Comanda parametrilor, tipul de date și numărarea trebuie să fie aceleași pentru suprasolicitarea metodei.
5Tipul de retur al unei metode poate fi același sau diferit în cazul supraîncărcării metodei. Nu contează deloc.Tipul de returnare al unei metode trebuie să fie același atât la clasa părintească, cât și la copil în cazul Metodei de suprasolicitare.
6Metodele statice pot fi supraîncărcate, adică putem avea diferite metode statice supraîncărcate în aceeași clasă.Metodele statice nu pot fi niciodată anulate, adică metoda statică dintr-o clasă părinte și clasa de bază nu are nicio relație între ele.
7Metodele private și finale pot fi supraîncărcate într-o clasă, adică o clasă poate avea supraîncărcat mai mult de 1 metode private și finale.Metodele private și finale nu pot fi niciodată anulate într-o clasă de copii.

Exemplu de suprasarcină a metodei:

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

ieşire:

Zona Pătratului 100
Zona dreptunghiului 120

În exemplul de mai sus, metoda 'area ()' este supraîncărcată și are parametri diferiți în ambele metode supraîncărcate. Deoarece zona trebuie să se afle atât pentru pătrat cât și dreptunghi, dar cu parametri diferiți.

Exemplu de metodă de suprasolicitare:

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

ieşire:

Tarifele pentru persoanele în vârstă sunt de 4, 5%

În exemplul de mai sus, metoda „rate ()” este ignorată în clasa derivată „SeniorCitizen”, deoarece dorim și ratele metodei din clasa SeniorCitizen, dar cu o implementare diferită.

Concluzie

Explicația de mai sus arată clar diferența dintre supraîncărcare și suprasolicitare și scenariile specifice în care sunt utilizate aceste două. Înainte de programare, trebuie să înțelegeți aceste concepte de bază ale Java, deoarece acestea stau la baza multor lucruri și ajută la înțelegerea ușoară a conceptelor mai avansate.

Articole recomandate

Acesta a fost un ghid pentru diferența maximă dintre supraîncărcare și supraîncărcare. Aici vom discuta, de asemenea, despre diferențele cheie de Supraîncărcare și Suprapunere cu infografie și tabelul de comparație. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. Programare funcțională față de OOP
  2. Ce este suprasolicitarea în JavaScript?
  3. Cum funcționează supraîncărcarea în PHP?
  4. Prezentare generală a supraîncărcării în C #
  5. Suprasolicitare în Java
  6. Supraîncărcarea Python
  7. Supraîncărcare și suprasolicitare în C #