Hvad er forskellen mellem metodeoverbelastning og overstyring?



Denne artikel dækker nøgleforskellene mellem overbelastning af metoder og tilsidesættelse i java med forskellige eksempler, herunder super nøgleord og forskellige regler.

Java-programmeringssprog er det bedste valg, når det kommer til . Med begreber som klasser , , osv. bliver det ekstremt let at arbejde med . Let adgang og let syntaks gør koden også effektiv og mindre kompleks. I denne artikel vil vi lære om metodeoverbelastning og tilsidesættelse i Java. Følgende er de emner, der diskuteres i denne blog:

Hvad er metodeoverbelastning i Java?

Metodeoverbelastning gør det muligt for metoden at have samme navn, som adskiller sig på baggrund af argumenter eller argumenttyperne. Det kan relateres til kompileringstidspolymorfisme. Følgende er et par tip, som vi skal huske på, når vi overbelaster metoder i Java.





  • Vi kan ikke overbelaste en returtype.

    omvendt et tal i java
  • Selvom vi kan overbelaste skal argumenterne eller inputparametrene være forskellige.



  • Vi kan ikke overbelaste to metoder, hvis de kun adskiller sig ved et statisk nøgleord.

  • Ligesom andre statiske metoder kan hovedmetoden () også overbelastes.

metodeoverbelastning - metodeoverbelastning og tilsidesættelse i java edureka



Lad os se på et simpelt program for at forstå, hvordan metodeoverbelastning fungerer i python.

offentlig klasse Div {public int div (int a, int b) {return (a / b)} public int div (int a, int b, int c) {return ((a + b) / c)} public static ugyldig main (String args []) {Div ob = new Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 Produktion: 5 4

I ovenstående program har vi to metoder med samme navn, men forskellige parametre. Sådan fungerer overbelastningsmetoden .

Hvorfor metodeoverbelastning?

Den største fordel ved at bruge metodeoverbelastning i Java er, at det giver os friheden til ikke at definere en funktion igen og igen til at gøre det samme. I nedenstående eksempel udfører de to metoder grundlæggende division, så vi kan have forskellige metoder med samme navn, men med forskellige parametre. Det hjælper også med at kompilere polymorfisme.

Overbelastning af hovedmetoden ():

Følgende er et eksempel på at overbelaste hovedmetoden () i java.

public class Edureka {public static void main (String [] args) {System.out.println ('hej') Edureka.main ('edurekan')} public static ugyldig main (String arg1) {System.out.println (' velkommen '+ arg1) Edureka.main (' velkommen ',' til edureka ')} offentlig statisk ugyldig main (String arg1, String arg2) {System.out.println (' hej ', + arg1, + arg2)}}
 Produktion: hej velkomst edurekan hej, velkommen til edureka

Eksempler på metodeoverbelastning

  • Program til at overbelaste statiske metoder i java.
public class Test {public static int func (int a) {return 100} public static char func (int a, int b) {return 'edureka'} public static void main (String args []) {System.out.println ( func (1)) System.out.println (func (1,3))}}
 Produktion: 100 edureka
  • Program til at overbelaste tre metoder med samme navn.
public class Tilføj {public int add (int a, int b) {return (a + b)} public int add (int a, int b, int c) {return (a + b + c)} public double add (double a, dobbelt b) {return (a + b)} offentlig statisk ugyldig hoved (String args []) {Tilføj ob = ny Tilføj () ob.add (15,25) ob.add (15,25,35) ob . tilføj (11.5, 22.5)}}
 Produktion: 40 75 34

Hvad er metodeoverstyring i Java?

Arv i java involverer et forhold mellem forældre- og barneklasser. Når begge klasser indeholder metoder med samme navn og argumenter eller parametre, er det sikkert, at en af ​​metoderne tilsidesætter den anden metode under udførelse. Den metode, der udføres, afhænger af objektet.

Hvis underordnet klasseobjekt kalder metoden, tilsidesætter underordnede klassemetoden underordnet klassemetode. Ellers, hvis overordnet klasseobjekt kalder metoden, udføres overordnet klassemetode.

Metodeoverstyring hjælper også med at implementere runtime polymorfisme i java. Lad os tage et simpelt eksempel for at forstå, hvordan metodeoverstyring fungerer i java.

class Parent {void view () {System.out.println ('this is a parent class method)}} class Child extends Parent {void view () {System.out.println (' this is a child class method)}} offentlig statisk ugyldig hoved (String args []) {Forælder ob = ny forælder () ob.view () Parent ob1 = new Child () ob1.view ()
 Produktion: dette er en barneklasse metode

Regler for metodeoverstyring

Eksempel på metodeoverskridelse

  • Program til at vise tilsidesættelse ved hjælp af super nøgleord
class Parent {void show () {System.out.println ('parent class method')} class Child extends Parent (void show () {super.show () System.out.println ('child class method')} public statisk ugyldigt hoved (String args []) {Parent ob = new Child () ob.show ()}}
 Produktion: forældreklassemetode barneklassemetode

Overbelastning vs Overriding: Forskel mellem metodeoverbelastning og metodeoverstyring

Følgende er de vigtigste forskelle mellem metodeoverbelastning og tilsidesættelse i Java.

Metode Overbelastning Metode tilsidesættelse
  • Det bruges til at øge læsbarheden af ​​programmet
  • Giver en specifik implementering af metoden, der allerede er i overordnet klasse
  • Det udføres inden for samme klasse
  • Det involverer flere klasser
  • Parametrene skal være forskellige i tilfælde af overbelastning
  • Parametrene skal være de samme i tilfælde af tilsidesættelse
  • Er et eksempel på kompileringstidspolymorfisme
  • Det er et eksempel på runtime polymorfisme
  • Returtype kan være forskellig, men du skal også ændre parametrene.
  • Returtypen skal være den samme som overordnet
  • Statiske metoder kan overbelastes
  • Tilsidesættelse involverer ikke statiske metoder.

I denne blog har vi diskuteret metodeoverbelastning og metodeoverstyring i detaljer. Med inddragelse af klasser, objekter og begreber som arv og polymorfisme bliver det ret vigtigt at få en klar idé om, hvad det betyder at overbelaste eller tilsidesætte metoder i java.

Java-programmeringssprog er et højdepunkt i objektorienteret programmering og indeholder mange applikationer. Med efterspørgslen og populariteten skal en ambitiøs java-udvikler være dygtig til programmeringssprogets grundlæggende begreber. Tilmeld dig Edurekas for at starte din læring.

Har du et spørgsmål til os? nævnes dette i kommentarfeltet i denne artikel om 'metodeoverbelastning vs metodeoverstyring i java', og vi vender tilbage til dig så hurtigt som muligt.