Difference Between Polymorphism and Inheritance in OOP

Innehållsförteckning:

Difference Between Polymorphism and Inheritance in OOP
Difference Between Polymorphism and Inheritance in OOP

Video: Difference Between Polymorphism and Inheritance in OOP

Video: Difference Between Polymorphism and Inheritance in OOP
Video: Inheritance vs Polymorphism | Inheritance and Polymorphism Differences in OOP 2024, November
Anonim

Key Difference – Polymorphism vs Inheritance in OOP

Objektorienterad programmering (OOP) används ofta för att utveckla programvara. Många programmeringsspråk stöder objektorienterad programmering. Objektorienterad programmering är en metod för att designa ett program med hjälp av klasser och objekt. En klass i OOP är en ritning för att skapa ett objekt. En klass har egenskaper och metoder. Ett objekt är en instans av en klass. OOP innehåller fyra pelare som arv, polymorfism, abstraktion och inkapsling. Den här artikeln diskuterar skillnaden mellan polymorfism och arv i OOP. Den viktigaste skillnaden mellan polymorfism och arv i OOP är att polymorfism är förmågan hos ett objekt att bete sig på flera sätt och arv är att skapa en ny klass med hjälp av egenskaper och metoder för en befintlig klass.

Vad är polymorfism i OOP?

Polymorfism är att indikera flera former. Ett objekt kan ha flera beteenden. Polymorfism kan delas in i två kategorier. De är överbelastade och åsidosättande.

Överbelastning

Se programmet nedan skrivet i Java.

Skillnaden mellan polymorfism och arv i OOP
Skillnaden mellan polymorfism och arv i OOP

Figur 01: Överbelastning

Enligt programmet ovan skapas ett objekt av typ A. När du anropar obj.sum(); det kommer att ge utdata relaterad till metoden sum(). När du anropar obj.sum(2, 3); det kommer att ge utdata relaterad till summa (int a, int b). Det kan observeras att samma föremål har olika beteenden beroende på situationen. När det finns flera metoder med samma namn, men med olika parametrar, kallas det överbelastning. Det är också känt som statisk bindning eller kompileringstidspolymorfism.

Åsidosättande

En annan typ av polymorfism är överordnad. Se programmet nedan skrivet i Java.

Skillnaden mellan polymorfism och arv i OOP_Figur 02
Skillnaden mellan polymorfism och arv i OOP_Figur 02

Figur 02: Åsidosättande

Enligt programmet ovan finns det en metoddisplay() i klass A. Klass B sträcker sig från klass A. Därför är alla metoder i klass A åtkomliga för klass B. Det är arv. Arvskonceptet beskrivs ytterligare senare.

Klass B har också samma metod display(). När man skapar ett objekt av typ A och anropar visningsmetod, kommer utdata att ge B. Klass A visningsmetod åsidosätts av klass B visningsmetod. Så utdata är B.

När det finns metoder med samma namn och samma parametrar men i två olika klasser, och de är länkade med arv, kallas det överstyrande. Det är också känt som Late binding, Dynamic Binding, Runtime Polymorphism. Överbelastning och åsidosättande kallas polymorfism. Det är ett stort koncept inom objektorienterad programmering.

Vad är arv i OOP?

Se programmet nedan skrivet i Java.

Nyckelskillnaden mellan polymorfism och arv i OOP
Nyckelskillnaden mellan polymorfism och arv i OOP

Figur 03: Exempel på arv

Enligt programmet ovan har klass A metoden sum() och klass B har metoden sub().

Sum()-metoden för klass A kan användas i klass B med hjälp av sökordet extend. Att återanvända egenskaperna och metoderna i en befintlig klass för att skapa en ny klass kallas Arv. Även det finns ingen sum()-metod i klass B; det ärvs från klass A. Arv är användbart för återanvändning av kod. Den äldre klassen kallas basklassen, superklassen eller föräldraklassen. Den härledda klassen kallas underklassen eller underklassen.

Arvstyper

Det finns olika typer av arv. De är ennivåarv, flernivåarv, multipelarv, hierarkiskt arv och hybridarv.

Single Inheritance

I Single Inheritance finns det en superklass och en underklass. Om klass A är superklassen och klass B är underklassen, är alla egenskaper och metoder för klass A tillgängliga för klass B. Det finns bara en nivå; därför kallas det för en-nivå arv.

Arv på flera nivåer

I Multi-Level Arv finns det tre nivåer av klasser. Mellanklassen ärver från superklassen. Underklassen ärver från den mellanliggande klassen. Om det finns tre klasser som A, B och C och A är superklassen och B är mellanklassen. Sedan ärver B från A och C ärver från B, det är ett Multi-Level Arv.

Multiple Inheritance

I Multiple Inheritance finns det många superklasser och en underklass. Om det finns tre superklasser som kallas A, B, C och D är underklassen, då kan klass D ärva från A, B och C. Multiple Inheritance stöds i programmeringsspråket C++. Det stöds inte i programmeringsspråk som Java eller C. Gränssnitt används för att implementera Multiple Inheritance på dessa språk.

Hierarkiskt arv

Om det finns klasser som kallas A som superklasser och B, C är underklasser, kan dessa underklasser ärva egenskaper och metoder av klass A. Den typen av arvstyp kallas Hierarchical Inheritance.

Hybrid Arv

Det finns en annan speciell arvstyp som är känd som Hybrid Arv. Det är en kombination av flera nivåer och flera arv. Om A, B, C och D är klasser och B ärver från A och D ärver från både B och C, så är det ett hybridarv.

Vilka är likheterna mellan polymorfism och arv i OOP?

Båda är koncept för objektorienterad programmering

Vad är skillnaden mellan polymorfism och arv i OOP?

Polymorphism vs Inheritance in OOP

Polymorfism är ett objekts förmåga att bete sig på flera sätt. Inheritance är att skapa en ny klass med hjälp av egenskaper och metoder för en befintlig klass.
Användning
Polymorfism används för att objekt ska anropa vilken form av metoder vid kompilering och körning. Arv används för återanvändning av kod.
Implementation
Polymorfism implementeras i metoder. Arv implementeras i klasser.
Kategorier
Polymorfism kan delas in i överbelastning och åsidosättande. Arv kan delas in i en-nivå, multi-level, hierarkisk, hybrid och multipel arv.

Sammanfattning – Polymorfism vs Arv i OOP

Polymorfism och arv är viktiga begrepp inom objektorienterad programmering. Skillnaden mellan Polymorphism och Inheritance i OOP är att Polymorphism är ett gemensamt gränssnitt till flera former och Arv är att skapa en ny klass med hjälp av egenskaper och metoder för en befintlig klass. Båda koncepten används i stor utsträckning inom mjukvaruutveckling.

Ladda ned PDF:en Polymorphism vs Inheritance i OOP

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 polymorfism och arv i OOP

Rekommenderad: