Nøgleforskel – Overbelastning vs tilsidesættelse i Java
Objektorienteret programmering (OOP) er et vigtigt 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 egenskaberne eller attributterne og de metoder, som objektet skal bestå af. Derfor er et objekt en instans af en klasse. Disse objekter kommunikerer med andre objekter. Et hovedbegreb for OOP er polymorfisme. Det er et objekts evne til at opføre sig på flere måder. Polymorfi er kategoriseret i to sektioner, som er overbelastende og overordnede. Denne artikel diskuterer forskellen mellem disse to i Java. Den vigtigste forskel mellem overbelastning og tilsidesættelse i Java er, at overbelastning er evnen til at skabe flere metoder af samme navn med forskellige implementeringer, og tilsidesættelse er at levere en implementering til en underklassemetode, der allerede findes i superklassen.
Hvad er overbelastning i Java?
Overloading er evnen til at skabe flere metoder af 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 kalder sum(2, 3), vil det kalde summetoden med to parametre, der er sum(int a, int b) og returnerer 5. Når du opretter et objekt af type A og kalder sum(2), 3, 4), kalder den den anden summetode med tre parametre, som er summen(int a, int b, int c) og returnerer 9.
Metodens navn er det samme, men antallet af parametre er forskellige. Det kan observeres, at det samme objekt opfører sig forskelligt. Dette koncept er kendt som overbelastning. Det omtales også som statisk binding eller kompilerer tidspolymorfi.
Der kan også være overbelastet med forskellige datatyper. Se nedenstående Java-kode.
Figur 02: Java-program, der forklarer Overbelastning med forskellige antal argumenter
Ifølge ovenstående program består klasse A af to metoder med samme navn. Sum(int a, int b)-metoden modtager to heltalsværdier. Summen (dobbelt a dobbelt b) modtager to dobbelte værdier. Når man opretter objektet af type A og kalder sum(2, 3), kalder det sum(int a, int b) og returnerer værdien 5. Når man kalder sum(3.4, 5.6), kalder det sum(double a double) b) og returner værdien 9,0. I dette eksempel har metoderne det samme navn, men en anden type variable. Dette er også overbelastende.
Hvad er tilsidesættelse i Java?
I Java er det muligt at bygge underklasser med allerede eksisterende klasser. I stedet for at oprette den nye klasse fra begyndelsen, 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 leverer en implementering til en metode, som allerede er i superklassen, er det kendt som tilsidesættende. Se nedenstående Java-program.
Figur 03: Java-program til tilsidesættelse
I henhold til ovenstående program har klasse A en metodevisning(). Klasse B strækker sig fra klasse A, så egenskaberne og metoderne for klasse A er tilgængelige for klasse B. Klasse B har metode display() med en specifik implementering. Når du opretter et objekt af typen A og kalder visningsmetoden, vil det give output B. Selvom klasse A har en visningsmetode, tilsidesættes den fra klasse B visningsmetode. Underklassen implementerer en metode, der allerede findes i superklassen.
Dette koncept er en type polymorfi og kendt som tilsidesættende. Det kaldes også som Late Binding, Dynamic Binding, Runtime Polymorphism.
Hvad er lighederne mellem overbelastning og tilsidesættelse i Java?
- Begge er typer polymorfi.
- Ved overbelastning og tilsidesættelse har metoder det samme navn.
Hvad er forskellen mellem overbelastning og tilsidesættelse i Java?
Overbelastning vs. tilsidesættelse i Java |
|
Overbelastning i Java er muligheden for at skabe flere metoder af samme navn med forskellige implementeringer. | Tilsidesættelse i Java giver en specifik implementering i underklassemetoden for 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. |
Themes | |
Overbelastning forekommer inden for klassen. | Tilsidesættelse sker inden for de to klasser, der har et arveforhold. |
Synonymer | |
Overbelastning kaldes kompileret tidspolymorfi. | Tilsidesættelse kaldes køretidspolymorfi. |
Opsummering – Overbelastning vs. tilsidesættelse i Java
Polymorfisme er et hovedbegreb i objektorienteret programmering. Det giver et objekt mulighed for at opføre sig på flere måder. Dette kan være enten overbelastning eller tilsidesættelse. Overbelastning er kompileringstidspolymorfi, og tilsidesættelse er runtime-polymorfi. De er nyttige i udvikling af softwareapplikationer. Forskellen mellem tilsidesættelse og overbelastning er, at overbelastning er evnen til at oprette flere metoder af samme navn med forskellige implementeringer, og tilsidesættelse giver en specifik implementering i underklassemetode for en metode, der allerede findes i superklassen. Det er muligt at implementere både overbelastning og tilsidesættelse i Java.
Download PDF-overbelastning vs tilsidesættelse i Java
Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-version her Forskel mellem overbelastning og tilsidesættelse i Java