Hva er forskjellen mellom metodeoverbelastning og overstyring?



Denne artikkelen dekker nøkkelforskjellene mellom metodeoverbelastning og overstyring i java med forskjellige eksempler, inkludert supernøkkelord og forskjellige regler.

Java-programmeringsspråk er det beste valget når det gjelder . Med konsepter som klasser , , osv. blir det ekstremt enkelt å jobbe med . Enkel tilgang og enkel syntaks gjør koden effektiv og mindre kompleks også. I denne artikkelen vil vi lære om overbelastning og overstyring av metoder i Java. Følgende er temaene som er diskutert i denne bloggen:

Hva er metodeoverbelastning i Java?

Metodeoverbelastning gjør at metoden kan ha samme navn som er forskjellig på grunnlag av argumenter eller argumenttypene. Det kan være relatert til kompileringstidspolymorfisme. Følgende er noen tips som vi må huske på når vi overbelaster metoder i Java.





  • Vi kan ikke overbelaste en returtype.

  • Selv om vi kan overbelaste må argumentene eller inngangsparametrene være forskjellige.



  • Vi kan ikke overbelaste to metoder hvis de bare skiller seg fra et statisk nøkkelord.

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

metode overbelastning - metode overbelastning og overstyring i java edureka



La oss ta en titt på et enkelt program for å forstå hvordan metodeoverbelastning fungerer i python.

offentlig klasse Div {offentlig int div (int a, int b) {retur (a / b)} offentlig int div (int a, int b, int c) {retur ((a + b) / c)} offentlig statisk tomrom main (String args []) {Div ob = new Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 Produksjon: 5 4

I programmet ovenfor har vi to metoder med samme navn, men forskjellige parametere. Slik fungerer metoden overbelastning i .

Hvorfor metodeoverbelastning?

Den største fordelen med å bruke metodeoverbelastning i Java er at det gir oss frihet til ikke å definere en funksjon igjen og igjen for å gjøre det samme. I eksemplet nedenfor utfører de to metodene i utgangspunktet inndeling, slik at vi kan ha forskjellige metoder med samme navn, men med forskjellige parametere. Det hjelper også med å samle polymorfisme.

Overbelastning av hovedmetoden ():

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

public class Edureka {public static void main (String [] args) {System.out.println ('hallo') Edureka.main ('edurekan')} public static void main (String arg1) {System.out.println (' velkommen '+ arg1) Edureka.main (' velkommen ',' til edureka ')} offentlig statisk tomrom hoved (String arg1, String arg2) {System.out.println (' hallo ', + arg1, + arg2)}}
 Produksjon: hei velkomst edurekan hei, velkommen til edureka

Eksempler på metode for overbelastning

  • Program for å 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))}}
 Produksjon: 100 edureka
  • Program for å overbelaste tre metoder med samme navn.
public class Legg til {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, dobbel b) {retur (a + b)} offentlig statisk ugyldig hoved (String args []) {Legg til = ny Legg til () ob.add (15,25) ob.add (15,25,35) ob . legge til (11.5, 22.5)}}
 Produksjon: 40 75 34

Hva er metodeoverstyring i Java?

Arv i java innebærer et forhold mellom foreldre- og barneklasser. Når begge klassene inneholder metoder med samme navn og argumenter eller parametere, er det sikkert at en av metodene overstyrer den andre metoden under kjøring. Metoden som skal utføres avhenger av objektet.

Hvis underordnet klasseobjekt kaller metoden, overstyrer barneklassemetoden overordnet klassemetode. Ellers, hvis overordnet klasseobjekt kaller metoden, blir overordnet klassemetode utført.

Metodeoverstyring hjelper også til å implementere polymorfisme i runtime i java. La oss ta et enkelt eksempel for å forstå hvordan metodeoverstyring fungerer i java.

def __init__ python
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)}} public static void main (String args []) {Parent ob = new Parent () ob.view () Parent ob1 = new Child () ob1.view ()
 Produksjon: dette er en barneklassemetode

Regler for metodeoverstyring

  • De tilgangsredigering kan bare tillate mer tilgang for den overstyrte metoden.

  • TIL endelig metoden støtter ikke overstyring av metoden.

  • En statisk metode kan ikke overstyres.

  • Private metoder kan ikke overstyres.

  • Returtypen til den overordnede metoden må være den samme.

  • Vi kan kalle foreldreklassemetoden i den overordnede metoden ved hjelp av supernøkkelordet.

  • TIL bygger kan ikke overstyres fordi en barneklasse og en overordnet klasse ikke kan ha konstruktøren med samme navn.

Metodeoverstyrende eksempel

  • Program for å vise overordnet ved hjelp av super søkeord
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 tomrom hoved (String args []) {Parent ob = new Child () ob.show ()}}
 Produksjon: foreldreklassemetode barneklassemetode

Overbelastning kontra overstyring: Forskjellen mellom metodeoverbelastning og metodeoverstyring

Følgende er nøkkelforskjellene mellom metodeoverbelastning og overstyring i Java.

Metode Overbelastning Metodeoverstyring
  • Den brukes til å øke lesbarheten til programmet
  • Gir en spesifikk implementering av metoden som allerede er i foreldreklassen
  • Det utføres i samme klasse
  • Det involverer flere klasser
  • Parametrene må være forskjellige i tilfelle overbelastning
  • Parametrene må være de samme i tilfelle overstyring
  • Er et eksempel på kompileringstidspolymorfisme
  • Det er et eksempel på kjøretidspolymorfisme
  • Returtype kan være forskjellig, men du må også endre parametrene.
  • Returtype må være den samme som overordnet
  • Statiske metoder kan overbelastes
  • Overstyring innebærer ikke statiske metoder.

I denne bloggen har vi diskutert metodeoverbelastning og metodeoverstyring i detalj. Med involvering av klasser, objekter og begreper som arv og polymorfisme blir det ganske viktig å få en klar ide om hva det vil si å overbelaste eller overstyre metoder i java.

Java-programmeringsspråk er et høydepunkt i objektorientert programmering og inneholder mange applikasjoner. Med etterspørsel og popularitet, må en håpefull java-utvikler være dyktig i de grunnleggende konseptene til programmeringsspråket. Registrer deg til Edureka’s å sette i gang læringen din.

Har du et spørsmål til oss? vennligst nevn dette i kommentarfeltet i denne artikkelen om “metodeoverbelastning vs metode som overstyres i java”, og vi vil kontakte deg så snart som mulig.