nyckelskillnad – överbelastning vs åsidosättande i Java
Objektorienterad programmering (OOP) är ett stort paradigm inom mjukvaruutveckling. Det är en metod för att designa ett program med hjälp av klasser och objekt. En klass är en ritning. Den beskriver vad som ska innehålla i objektet. Den definierar egenskaperna eller attributen och de metoder som objektet ska bestå av. Därför är ett objekt en instans av en klass. Dessa objekt kommunicerar med andra objekt. Ett huvudkoncept för OOP är polymorfism. Det är förmågan för ett objekt att bete sig på flera sätt. Polymorfism är kategoriserad i två sektioner som är överbelastade och åsidosättande. Den här artikeln diskuterar skillnaden mellan dessa två i Java. Den viktigaste skillnaden mellan överbelastning och åsidosättande i Java är att Överbelastning är möjligheten att skapa flera metoder med samma namn med olika implementeringar och Åsidosättande är att tillhandahålla en implementering för en underklassmetod som redan finns i superklassen.
Vad är överbelastning i Java?
Överbelastning är möjligheten att skapa flera metoder med samma namn med olika implementeringar. Se Java-koden nedan.
Figur 01: Java-program som förklarar Överbelastning med olika antal argument
Enligt ovanstående program innehåller klass A två metoder med samma namn. Den första summametoden har två parametrar. Den andra summametoden har tre parametrar. När du skapar ett objekt av typ A och anropar sum(2, 3) kommer det att anropa summametoden med två parametrar som är sum(int a, int b) och returnerar 5. När du skapar ett objekt av typ A och anropar sum(2), 3, 4), anropar den den andra summametoden med tre parametrar som är summan (int a, int b, int c) och returnerar 9.
Metodnamnet är detsamma men antalet parametrar är olika. Det kan observeras att samma objekt beter sig olika. Detta koncept är känt som överbelastning. Det kallas också för statisk bindning eller kompilerar tidspolymorfism.
Det kan också vara överbelastat med olika datatyper. Se Java-koden nedan.
Figur 02: Java-program som förklarar Överbelastning med olika antal argument
Enligt ovanstående program består klass A av två metoder med samma namn. Metoden summa(int a, int b) får två heltalsvärden. Summan (dubbel a dubbel b) får två dubbla värden. När du skapar objektet av typ A och anropar sum(2, 3) kommer det att anropa sum(int a, int b) och returnera värdet 5. När du anropar sum(3.4, 5.6) anropar det sum(double a double) b) och returnera värdet 9,0. I det här exemplet har metoderna samma namn, men en annan typ av variabler. Detta är också överbelastat.
Vad är överstyrning i Java?
I Java är det möjligt att bygga underklasser med redan existerande klasser. Istället för att skapa den nya klassen från början är det möjligt att använda egenskaperna och metoderna för den redan befintliga klassen. Den befintliga klassen är superklassen och den härledda klassen är underklassen. När underklassen tillhandahåller en implementering för en metod, som redan finns i superklassen, kallas den för åsidosättande. Se Java-programmet nedan.
Figur 03: Java-program för överstyrning
Enligt programmet ovan har klass A en metoddisplay(). Klass B sträcker sig från klass A, så egenskaperna och metoderna för klass A är tillgängliga för klass B. Klass B har metod display() med en specifik implementering. När man skapar ett objekt av typen A och anropar visningsmetoden, kommer det att ge utdata B. Även om klass A har en visningsmetod åsidosätts den från visningsmetoden klass B. Underklass implementerar en metod som redan finns i superklassen.
Det här konceptet är en typ av polymorfism och kallas överordnat. Det kallas också för sen bindning, dynamisk bindning, körtidspolymorfism.
Vilka är likheterna mellan överbelastning och överstyrning i Java?
- Båda är typer av polymorfism.
- Vid överbelastning och åsidosättande har metoder samma namn.
Vad är skillnaden mellan överbelastning och överstyrning i Java?
Överbelastning vs åsidosättande i Java |
|
Överbelastning i Java är möjligheten att skapa flera metoder med samma namn med olika implementeringar. | Åsidosättande i Java tillhandahåller en specifik implementering i underklassmetoden för en metod som redan finns i superklassen. |
Parametrar | |
Vid överbelastning har metoderna samma namn men ett annat antal parametrar eller en annan typ av parametrar. | Vid överstyrning har metoderna samma namn och parametrarna måste vara desamma. |
Themes | |
Överbelastning sker inom klassen. | Åsidosättande sker inom de två klasserna som har ett arvsförhållande. |
Synonymer | |
Överbelastning kallas kompilerad tidspolymorfism. | Åsidosättande kallas körtidspolymorfism. |
Sammanfattning – Överbelastning vs Åsidosättande i Java
Polymorfism är ett huvudbegrepp inom objektorienterad programmering. Det ger möjligheten för ett objekt att bete sig på flera sätt. Detta kan vara antingen överbelastning eller åsidosättande. Överbelastning är kompileringstidspolymorfismen, och åsidosättande är körtidspolymorfismen. De är användbara vid utveckling av mjukvaruapplikationer. Skillnaden mellan åsidosättande och överbelastning är att Överbelastning är möjligheten att skapa flera metoder med samma namn med olika implementeringar och Åsidosättande tillhandahåller en specifik implementering i underklassmetod för en metod som redan finns i superklassen. Det är möjligt att implementera både överbelastning och åsidosättande i Java.
Ladda ned PDF-filen Överbelastning vs Åsidosättande i Java
Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här Skillnaden mellan överbelastning och åsidosättande i Java