Forskel mellem overbelastning og overstyring i Java

Nøgleforskel - Overbelastning vs Overriding i Java
 

Objektorienteret programmering (OOP) er et stort paradigme inden for softwareudvikling. Det er en metode til at designe et program ved hjælp af klasser og objekter. En klasse er en plan. Den beskriver, hvad der skal indeholde i objektet. Den definerer egenskaber eller attributter og de metoder, som objektet skal bestå af. Derfor er et objekt et eksempel på en klasse. Disse objekter kommunikerer med andre objekter. Et hovedkoncept af OOP er polymorfisme. Det er et objekts evne til at opføre sig på flere måder. Polymorfisme er kategoriseret i to sektioner, der overbelaster og tilsidesætter. Denne artikel diskuterer forskellen mellem disse to i Java. Det vigtigste forskel mellem overbelastning og tilsidesættelse i Java er, at Overbelastning er muligheden for at oprette flere metoder med samme navn med forskellige implementeringer og Overriding er at tilvejebringe en implementering af en underklasse-metode, der allerede findes i superklassen.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er overbelastning i Java
3. Hvad overstyrer i Java
4. Ligheder mellem overbelastning og overstyring i Java
5. Sammenligning ved siden af ​​hinanden - Overbelastning vs Overriding i Java i tabelform
6. Resume

Hvad er overbelastning i Java?

Overbelastning er muligheden for at oprette flere metoder med samme navn med forskellige implementeringer. Se nedenstående Java-kode.

Figur 01: Java-program, der forklarer overbelastning med forskellige antal argumenter

I henhold til ovenstående program indeholder klasse A to metoder med samme navn. Den første summetode har to parametre. Den anden summetode har tre parametre. Når du opretter et objekt af type A og opkaldssum (2,3), kaldes det summetode med to parametre, der er sum (int a, int b) og vender tilbage 5. Når du opretter et objekt af type A og kaldesum (2 , 3,4), kaldes den anden summetode med tre parametre, som er summen (int a, int b, int c) og returnerer 9.

Metodenavnet er det samme, men antallet af parametre er forskellige. Det kan observeres, at det samme objekt opfører sig anderledes. Dette koncept kaldes overbelastning. Det kaldes også Statisk binding eller Kompilerer tidspolymorfisme.

Der kan også overbelastes med forskellige datatyper. Se nedenstående Java-kode.

Figur 02: Java-program, der forklarer overbelastning med forskellige antal argumenter

I henhold til ovenstående program består klasse A af to metoder med samme navn. Summen (int a, int b) -metoden modtager to heltalværdier. Summen (dobbelt en dobbelt b) modtager to dobbeltværdier. Når du opretter objektet af type A og opkaldssum (2,3), vil det ringe sum (int a, int b) og returnere værdien 5. Når du kalder sum (3.4, 5.6), kalder det sum (dobbelt en dobbelt b) og returner værdien 9,0. I dette eksempel har metoderne det samme navn, men en anden type variabler. Dette er også overbelastning.

Hvad overstyrer i Java?

I Java er det muligt at bygge underklasser med allerede eksisterende klasser. I stedet for at oprette den nye klasse fra starten, er det muligt at bruge egenskaberne og metoderne for den allerede eksisterende klasse. Den eksisterende klasse er superklassen, og den afledte klasse er underklassen. Når underklassen tilvejebringer en implementering af en metode, der allerede findes i superklassen, kaldes den overstyrende. Se Java-programmet nedenfor.

Figur 03: Java-program til tilsidesættelse

I henhold til ovenstående program har klasse A en metodedisplay (). Klasse B strækker sig fra klasse A, så egenskaberne og metoderne i klasse A er tilgængelige for klasse B. Klasse B har metodevisning () med en specifik implementering. Når du opretter et objekt af type, A og kalder visningsmetoden, giver det output B. Selvom klasse A har en visningsmetode, tilsidesættes det som klasse B-visningsmetode. Underklasse implementerer en metode, der allerede findes i superklassen.

Dette koncept er en type polymorfisme og kendt som altoverskyggende. Det kaldes også som Sen binding, Dynamisk binding, Runtime-polymorfisme.

Hvad er ligheden mellem overbelastning og tilsidesættelse i Java?

  • Begge er typer af polymorfisme.
  • Ved overbelastning og tilsidesættelse har metoder det samme navn.

Hvad er forskellen mellem overbelastning og tilsidesættelse i Java?

Overbelastning vs Overriding i Java

Overbelastning i Java er muligheden for at oprette flere metoder med samme navn med forskellige implementeringer. Overstyring i Java leverer en specifik implementering i underklasse-metoden til en metode, der allerede findes i superklassen.
 Parametre
Ved overbelastning har metoderne det samme navn men et andet antal parametre eller en anden type parametre. Ved tilsidesættelse har metoderne det samme navn, og parametrene skal være de samme.
Temaer
Overbelastning sker inden for klassen. Overstyring forekommer inden for de to klasser, der har et arveforhold.
 Synonymer
Overbelastning kaldes kompileret tidspolymorfisme. Overstyring kaldes polymorfisme af kørselstid.

Resume - Overbelastning vs Overriding i Java

Polymorfisme er et hovedkoncept inden for objektorienteret programmering. Det giver et objekt mulighed for at opføre sig på flere måder. Dette kan være af overbelastning eller tilsidesættelse. Overbelastning er kompileringstids-polymorfismen, og overstyring er runtime-polymorfismen. De er nyttige i software-applikationsudvikling. Forskellen mellem tilsidesættelse og overbelastning er, at overbelastning er muligheden for at oprette flere metoder med samme navn med forskellige implementeringer, og at Overriding leverer en specifik implementering i underklasse-metode til en metode, der allerede findes i superklassen. Det er muligt at implementere både overbelastning og tilsidesættelse i Java.

Download PDF Overbelastning vs Overriding i Java

Du kan downloade PDF-version af denne artikel og bruge den til offline-formål som pr. Citatnotat. Download PDF-version her Forskel mellem overbelastning og tilsidesættelse i Java

Reference:

1.tutorialspoint.com. “Java-tilsidesættelse.” Pointen. Tilgængelig her 
2. "Overbelastning af metode i Java - Javatpoint." Tilgængelig her
3. "Metodeoverskridelse i Java - javatpoint." Tilgængelig her