Verschil tussen overbelasting versus opheffen

Voordat we diep ingaan op de verschillen tussen overbelasting versus opheffen, moeten we begrijpen wat ze eigenlijk zijn en de scenario's waarin ze in het bijzonder worden gebruikt? Nieuwkomers op Java raken vaak in de war tussen de twee, maar ze verschillen totaal van elkaar en worden in hun specifieke scenario's gebruikt. Methode overbelasting is wanneer we meerdere methoden hebben met dezelfde naam maar verschillende handtekeningen. Handtekeningen omvatten het aantal methodeparameters, het gegevenstype parameters. Het retourtype is niet inbegrepen in de handtekening. Dit wordt gedaan om de functionaliteit te bieden van het hergebruiken van dezelfde methodenaam en het vergroten van de leesbaarheid van programma's. Methode Overschrijven gebeurt in het geval van Overerving waarbij afgeleide klasse de eigenschappen van de basisklasse erft. Het gaat om het definiëren van dezelfde methode van basisklasse in een afgeleide klasse met dezelfde parameter en hetzelfde type retour om een ​​specifieke functionaliteit / implementatie van die methode in de afgeleide klasse te definiëren.

Overweeg een scenario waarin een programmeur het gebied van een geometrische figuur moet vinden. Het gebied van elke figuur varieert van elkaar. Voor het vinden van het gebied van het vierkant is bijvoorbeeld slechts één parameter 'zijde' vereist, voor rechthoek zijn twee parameters 'lengte en breedte' vereist, terwijl voor cirkel 'een straal is vereist die decimaal kan zijn. Om dit doel op te lossen, wordt overbelasting van de methode gedaan waarbij het methodegebied verschillende parameters en datatype heeft voor een gebied met verschillende figuren. Denk aan de situatie van het banksysteem, hoewel meerdere methoden en procedures voor alle werknemers hetzelfde zijn, behalve dat sommige rentetarieven voor normale en senioren anders zijn. In dit geval wordt Methode opheffen gebruikt met verschillende implementaties van methode Rentetarieven in zowel de normale als de seniorenklasse die de basisklasse 'banktarieven' erft.

Vergelijking tussen overbelasting versus opheffing (infographics)

Hieronder vindt u de Top 7-vergelijking tussen overbelasting versus opheffen :

Belangrijkste verschillen tussen overbelasting versus opheffen

Laten we enkele van de belangrijkste belangrijkste verschillen tussen overbelasting versus opheffing bespreken:

  1. Bij methode-overbelasting kunnen methoden dezelfde of verschillende toegangsspecificaties / modificatoren in de naam van de methode hebben, terwijl in Method Overriding method van base case (overschreven methode) een beperkte toegangsspecificatie moet hebben dan de methode van een bovenliggende klasse. Als de methode van een basisklasse bijvoorbeeld is beveiligd, is de onderliggende methode privé niet toegestaan.
  2. In vergelijking met de prestaties levert overbelasting betere prestaties op in vergelijking met Overschrijven omdat de methode overbelast wordt tijdens het compileren.
  3. Het retourtype van een methode maakt nooit deel uit van de methode Overbelasting, dus het maakt niet uit of verschillende overbelaste methoden hetzelfde of een ander retourtype hebben, terwijl in Methode het retourtype van beide methoden van bovenliggende en basisklasse exact hetzelfde moet zijn .
  4. Als we het over binding hebben, heeft overbelasting statische binding, terwijl overriden dynamische binding heeft.
  5. Uitzondering gegooid door methode maakt niet uit in de overbelaste methode als een methode uitzonderingen genereert, andere overbelaste methoden dezelfde of een andere uitzondering kunnen / kunnen werpen, maar in het geval van overschrijven, kan de overschrijvende methode (methode in afgeleide klasse) geen uitzondering van hogere hiërarchie veroorzaken dan de overschreven methode (methode in basisklasse).
  6. Alle specificaties, zoals privé, finaal en statisch, kunnen niet worden gebruikt in Methode overschrijven, terwijl alle toegangsspecificaties zijn toegestaan ​​in methode overbelasting.

Vergelijkingstabel overbelasting versus opheffing

De onderstaande tabel geeft een overzicht van de vergelijkingen tussen overbelasting versus opheffing:

S.No. overbelasting overschrijven
1Methode overbelasting wordt gedaan om een ​​verbeterde definitie van methoden volgens verschillende situaties te hebben.Methode opheffen wordt gedaan om een ​​specifieke implementatie van methoden te bieden die zijn gedefinieerd in de bovenliggende klasse.
2Methode Overbelasting wordt gedaan in een enkele klasse waarin een klasse verschillende definities van een methode heeft.Methode Opheffen gebeurt tussen twee klassen met een IS-A (Inheritance) relatie.
3Methode Overbelasting wordt gedaan tijdens het compileren en daarom staat het bekend als Compile time Polymorphism.Methode Overschrijven gebeurt tijdens runtime en daarom staat het bekend als runtime-polymorfisme.
4De volgorde van parameters, het gegevenstype en het aantal parameters moeten anders zijn voor methode-overbelasting.De volgorde van parameters, het gegevenstype en het aantal moeten hetzelfde zijn voor Methode opheffen.
5Het retourtype van een methode kan hetzelfde of verschillend zijn in geval van methode-overbelasting. Het doet er helemaal niet toe.Het retourtype van een methode moet hetzelfde zijn in zowel de bovenliggende als de onderliggende klasse in het geval van Methode overschrijven.
6Statische methoden kunnen overbelast zijn, dat wil zeggen dat we verschillende statische methoden in dezelfde klasse kunnen overbelasten.Statische methoden kunnen nooit worden opgeheven, dwz statische methoden in een bovenliggende klasse en basisklasse hebben geen relatie daartussen.
7Privé- en eindmethoden kunnen in een klasse worden overbelast, dat wil zeggen dat een klasse meer dan 1 privé- en eindmethoden kan hebben overbelast.Particuliere en definitieve methoden kunnen nooit worden opgeheven in een kindklasse.

Voorbeeld van methode-overbelasting:

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

Output:

Gebied van Square 100
Gebied van rechthoek 120

In het bovenstaande voorbeeld is de methode 'area ()' overbelast en heeft deze in beide overbelaste methoden verschillende parameters. Omdat het gebied moet zoeken naar zowel het vierkant als de rechthoek, maar met verschillende parameters.

Voorbeeld van overschrijven van de methode:

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

Output:

Tarieven voor senioren zijn 4, 5%

In het bovenstaande voorbeeld wordt methode 'tarieven ()' overschreven in afgeleide klasse 'SeniorCitizen' omdat we de methode-tarieven ook in de klasse SeniorCitizen willen, maar met een andere implementatie.

Conclusie

De bovenstaande uitleg toont duidelijk het verschil tussen overbelasting versus opheffing en de specifieke scenario's waarin deze twee worden gebruikt. Voordat u programmeert, moet u deze kernconcepten van Java begrijpen, omdat ze de basis vormen van veel dingen en helpen bij het gemakkelijk begrijpen van meer geavanceerde concepten.

Aanbevolen artikelen

Dit is een leidraad geweest voor het grootste verschil tussen overbelasting versus opheffing. Hier bespreken we ook de belangrijkste verschillen tussen overbelasting en opheffen met infographics en vergelijkingstabel. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Functioneel programmeren versus OOP
  2. Wat overschrijft JavaScript?
  3. Hoe werkt overbelasting in PHP?
  4. Overzicht van overbelasting in C #
  5. Overschrijven in Java
  6. Python overbelast
  7. Overbelasting en opheffen in C #