Forskel mellem polymorfisme og arv i OOP

Nøgleforskel - Polymorfisme vs arv i OOP
 

Objektorienteret programmering (OOP) bruges ofte til at udvikle software. Mange programmeringssprog understøtter objektorienteret programmering. Objektorienteret programmering er en metode til at designe et program ved hjælp af klasser og objekter. En klasse i OOP er en plan for at oprette et objekt. En klasse har egenskaber og metoder. Et objekt er et eksempel på en klasse. OOP indeholder fire søjler såsom arv, polymorfisme, abstraktion og indkapsling. Denne artikel diskuterer forskellen mellem polymorfisme og arv i OOP. Det vigtigste forskel mellem polymorfisme og arv i OOP er det Polymorfisme er et objekts evne til at opføre sig på flere måder, og arv er at oprette en ny klasse ved hjælp af egenskaber og metoder i en eksisterende klasse.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er polymorfisme i OOP
3. Hvad er arv i OOP
4. Ligheder mellem polymorfisme og arv i OOP
5. Sammenligning side ved side - Polymorfisme vs arv i OOP i tabelform
6. Resume

Hvad er polymorfisme i OOP?

Polymorfisme er at indikere flere former. Et objekt kan have flere adfærd. Polymorfisme kan opdeles i to kategorier. De overbelaster og tilsidesætter.

overbelastning

Se nedenstående program skrevet i Java.

Figur 01: Overbelastning

I henhold til ovenstående program oprettes et objekt af type A. Når du ringer til obj.sum (); det giver output relateret til metodesum (). Når du ringer til obj.sum (2,3); det giver output, der er relateret til summen (int a, int b). Det kan observeres, at det samme objekt har forskellige opførsler afhængigt af situationen. Når der er flere metoder med samme navn, men med forskellige parametre, er det kendt som overbelastning. Det er også kendt som statisk binding eller kompilere tidspolymorfisme.

Overstyring

En anden type polymorfisme er tvingende. Se nedenstående program skrevet i Java.

Figur 02: Overstyring

I henhold til ovenstående program er der en metodedisplay () i klasse A. Klasse B strækker sig fra klasse A. Derfor er alle metoder i klasse A tilgængelige af klasse B. Det er arv. Arvskonceptet beskrives nærmere senere.

Klasse B har også den samme metodedisplay (). Når der oprettes et objekt af type A og opkaldsvisningsmetode, giver outputtet B. Klasse A-visningsmetode tilsidesættes af klasse B-visningsmetode. Så output er B.

Når der er metoder med samme navn og samme parametre, men i to forskellige klasser, og de er knyttet til arv, kaldes det overstyrende. Det er også kendt som Sen binding, Dynamisk binding, Runtime Polymorphism. Overbelastning og tilsidesættelse kaldes polymorfisme. Det er et hovedkoncept inden for objektorienteret programmering.

Hvad er arv i OOP?

Se nedenstående program skrevet i Java.

Figur 03: Eksempel på arv

I henhold til ovenstående program har klasse A metodesum () og klasse B har metodesub ().

Summen () -metoden til klasse A kan bruges i klasse B ved hjælp af ekstern søgeord. Genbrug af egenskaber og metoder i en eksisterende klasse for at oprette en ny klasse kaldes Arv. Selv der er ingen sum () -metode i klasse B; den er arvet fra klasse A. Arv er nyttig til genanvendelse af kode. Den ældre klasse kaldes the baseklasse, superklasse eller forældreklasse. Den afledte klasse kaldes the underklasse eller børneklasse.

Arvstyper

Der er forskellige typer arv. De er arv på enkelt niveau, flerfoldig arv, flere arv, hierarkisk arv og hybrid arv.

Enkelt arv

I en enkelt arv er der en superklasse og en underklasse. Hvis klasse A er superklassen, og klasse B er underklassen, er alle egenskaber og metoder til klasse A tilgængelig for klasse B. Der er kun et niveau; derfor kaldes det som en-arv.

Erfarenhed på flere niveauer

I arven på flere niveauer er der tre niveauer af klasser. Mellemklassen arver fra superklasse. Underklassen arver fra mellemklassen. Hvis der er tre klasser som A, B og C og A er superklassen og B er mellemklassen. Derefter arver B fra A og C arver fra B, det er en flerniveau-arv.

Multiple arv

I flere arv er der mange superklasser og en underklasse. Hvis der er tre superklasser kaldet A, B, C og D er underklassen, kan klasse D arve fra A, B og C. Multiple arv understøttes i programmeringssprog C ++. Det understøttes ikke i programmeringssprog som Java eller C #. Grænseflader bruges til at implementere Multiple Inheritance på disse sprog.

Hierarkisk arv

Hvis der er klasser, der kaldes A som superklasser, og B, C er underklasser, kan disse underklasser arve egenskaber og metoder til klasse A. Den slags arvstype kaldes Hierarkisk arv.

Hybrid arv

Der er en anden speciel arvtype, der er kendt som hybrid arv. Det er en kombination af flere niveauer og flere arver. 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 hybrid arv.

Hvad er lighederne mellem polymorfisme og arv i OOP?

  • Begge er begreber med objektorienteret programmering.

Hvad er forskellen mellem polymorfisme og arv i OOP?

Polymorfisme vs arv i OOP

Polymorfisme er et objekts evne til at opføre sig på flere måder. Arv er at oprette en ny klasse ved hjælp af egenskaber og metoder til en eksisterende klasse.
 Anvendelse
Polymorphism bruges til objekter at kalde hvilken form for metoder på kompileringstid og runtime. Arv bruges til kodegenanvendelighed.
Implementering
Polymorfisme implementeres i metoder. Arv implementeres i klasser.
 Kategorier
Polymorfisme kan opdeles i overbelastning og tilsidesættelse. Arv kan opdeles i enkeltniveau, multiniveau, hierarkisk, hybrid og multiple arv.

Resumé - Polymorfisme vs arv i OOP 

Polymorfisme og arv er vigtige begreber inden for objektorienteret programmering. Forskellen mellem polymorfisme og arv i OOP er, at polymorfisme er en fælles grænseflade til flere former, og arv er at oprette en ny klasse ved hjælp af egenskaber og metoder i en eksisterende klasse. Begge koncepter er vidt brugt i Software Development.

Download PDF Polymorphism vs Inheritance i OOP

Du kan downloade PDF-version af denne artikel og bruge den til offline-formål som pr. Citatnotat. Download PDF-version her Forskel mellem polymorfisme og arv i OOP

Reference:
  1. 8.3 Hvad er arv i Java | Foredrag | tutorial, Telusko Learning, 15. maj 2014. Tilgængelig her  
  2. Polymorphism i Java Tutorial, Telusko Learning, 15. maj 2014. Tilgængelig her