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.
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
Polymorfisme er at indikere flere former. Et objekt kan have flere adfærd. Polymorfisme kan opdeles i to kategorier. De overbelaster og tilsidesætter.
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.
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.
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.
Der er forskellige typer arv. De er arv på enkelt niveau, flerfoldig arv, flere arv, hierarkisk arv og hybrid 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.
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.
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.
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.
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.
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. |
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.
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