Difference Between Polymorphism and Inheritance in OOP

Innholdsfortegnelse:

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 & Polymorphism - Java Programming Tutorial 2024, November
Anonim

Key Difference – Polymorphism vs Inheritance in OOP

Objektorientert programmering (OOP) brukes ofte til å utvikle programvare. Mange programmeringsspråk støtter objektorientert programmering. Objektorientert programmering er en metodikk for å designe et program ved hjelp av klasser og objekter. En klasse i OOP er en blåkopi for å lage et objekt. En klasse har egenskaper og metoder. Et objekt er en forekomst av en klasse. OOP inneholder fire pilarer som arv, polymorfisme, abstraksjon og innkapsling. Denne artikkelen diskuterer forskjellen mellom polymorfisme og arv i OOP. Den viktigste forskjellen mellom polymorfisme og arv i OOP er at polymorfisme er evnen til et objekt til å oppføre seg på flere måter, og arv er å lage en ny klasse ved å bruke egenskaper og metoder for en eksisterende klasse.

Hva er polymorfisme i OOP?

Polymorfisme er å indikere flere former. Ett objekt kan ha flere atferd. Polymorfisme kan deles inn i to kategorier. De overbelaster og overstyrer.

Overbelastning

Se programmet nedenfor skrevet i Java.

Forskjellen mellom polymorfisme og arv i OOP
Forskjellen mellom polymorfisme og arv i OOP

Figur 01: Overbelastning

I henhold til programmet ovenfor opprettes et objekt av type A. Når du kaller obj.sum(); det vil gi utdata relatert til metode sum(). Når du kaller obj.sum(2, 3); det vil gi utdata relatert til sum(int a, int b). Det kan observeres at det samme objektet har ulik oppførsel avhengig av situasjonen. Når det er flere metoder med samme navn, men med forskjellige parametere, er det kjent som overbelastning. Det er også kjent som statisk binding eller kompileringstidspolymorfisme.

Overstyrende

En annen type polymorfisme er overordnet. Se programmet nedenfor skrevet i Java.

Forskjellen mellom polymorfisme og arv i OOP_Figur 02
Forskjellen mellom polymorfisme og arv i OOP_Figur 02

Figur 02: Overstyrer

I henhold til programmet ovenfor er det en metodevisning() i klasse A. Klasse B strekker seg fra klasse A. Derfor er alle metoder i klasse A tilgjengelige for klasse B. Det er arv. Arvebegrepet beskrives nærmere senere.

Klasse B har også samme metode display(). Når du oppretter et objekt av type A og kaller visningsmetode, vil utdata gi B. Klasse A visningsmetode overstyres av klasse B visningsmetode. Så utgangen er B.

Når det er metoder med samme navn og samme parametere, men i to forskjellige klasser, og de er knyttet til arv, er det kjent som overstyring. Det er også kjent som Late binding, Dynamic Binding, Runtime Polymorphism. Overbelastning og overstyring kalles polymorfisme. Det er et hovedkonsept innen objektorientert programmering.

Hva er arv i OOP?

Se programmet nedenfor skrevet i Java.

Nøkkelforskjellen mellom polymorfisme og arv i OOP
Nøkkelforskjellen mellom polymorfisme og arv i OOP

Figur 03: Eksempel på arv

I følge programmet ovenfor har klasse A metode sum() og klasse B har metode sub().

Sum()-metoden til klasse A kan brukes i klasse B ved å bruke utvidelsesnøkkelord. Gjenbruk av egenskapene og metodene i en eksisterende klasse for å lage en ny klasse er kjent som arv. Selv det er ingen sum()-metode i klasse B; det er arvet fra klasse A. Arv er nyttig for gjenbruk av kode. Den eldre klassen kalles basisklassen, superklassen eller foreldreklassen. Den avledede klassen kalles underklassen eller underklassen.

typer av arv

Det finnes ulike typer arv. De er enkeltnivåarv, flernivåarv, multippelarv, hierarkisk arv og hybridarv.

Single Inheritance

I Single Inheritance er det én superklasse og én underklasse. Hvis klasse A er superklassen og klasse B er underklassen, er alle egenskapene og metodene til klasse A tilgjengelige for klasse B. Det er bare ett nivå; derfor kalles det enkeltnivåarv.

Multi-Level Inheritance

I Multi-Level Inheritance er det tre nivåer av klasser. Mellomklassen arver fra superklassen. Underklassen arver fra mellomklassen. Hvis det er tre klasser som A, B og C og A er superklassen og B er mellomklassen. Så arver B fra A og C arver fra B, det er en flernivåarv.

Multiple Inheritance

I Multiple Inheritance er det mange superklasser og en underklasse. Hvis det er tre superklasser k alt A, B, C og D er underklassen, så kan klasse D arve fra A, B og C. Multiple Inheritance støttes i programmeringsspråket C++. Det støttes ikke i programmeringsspråk som Java eller C. Grensesnitt brukes for å implementere Multiple Inheritance på disse språkene.

Hierarkisk arv

Hvis det er klasser k alt A som superklasser og B, C er underklasser, kan disse underklassene arve egenskaper og metoder for klasse A. Den typen arv er kjent som Hierarkisk arv.

Hybrid Inheritance

Det er en annen spesiell arvetype som er kjent som Hybrid Inheritance. Det er en kombinasjon av flere nivåer og flere arv. Hvis A, B, C og D er klasser og B arver fra A og D arver fra både B og C, så er det en hybridarv.

Hva er likhetene mellom polymorfisme og arv i OOP?

Begge er konsepter innen objektorientert programmering

Hva er forskjellen mellom polymorfisme og arv i OOP?

Polymorfisme vs arv i OOP

Polymorfisme er en gjenstands evne til å oppføre seg på flere måter. Inheritance er å opprette en ny klasse ved å bruke egenskaper og metoder for en eksisterende klasse.
Bruk
Polymorfisme brukes for objekter å kalle hvilken form for metoder ved kompileringstid og kjøretid. Arv brukes for gjenbruk av kode.
Implementering
Polymorfisme er implementert i metoder. Arv er implementert i klasser.
Kategorier
Polymorfisme kan deles inn i overbelastning og overstyring. Arv kan deles inn i enkelt-nivå, multi-level, hierarkisk, hybrid og multippel arv.

Summary – Polymorphism vs Inheritance in OOP

Polymorfisme og arv er hovedbegreper i objektorientert programmering. Forskjellen mellom polymorfisme og arv i OOP er at polymorfisme er et felles grensesnitt til flere former, og arv er å lage en ny klasse ved å bruke egenskaper og metoder for en eksisterende klasse. Begge konseptene er mye brukt i programvareutvikling.

Last ned PDF-filen Polymorphism vs Inheritance i OOP

Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til offline-formål i henhold til sitat. Last ned PDF-versjon her Forskjellen mellom polymorfisme og arv i OOP

Anbefalt: