Verschil tussen polymorfisme en overerving in OOP

Inhoudsopgave:

Verschil tussen polymorfisme en overerving in OOP
Verschil tussen polymorfisme en overerving in OOP

Video: Verschil tussen polymorfisme en overerving in OOP

Video: Verschil tussen polymorfisme en overerving in OOP
Video: Inheritance vs Polymorphism | Inheritance and Polymorphism Differences in OOP 2024, December
Anonim

Belangrijk verschil - Polymorfisme versus overerving in OOP

Object-Oriented Programming (OOP) wordt vaak gebruikt om software te ontwikkelen. Veel programmeertalen ondersteunen objectgeoriënteerd programmeren. Objectgeoriënteerd programmeren is een methode om een programma te ontwerpen met behulp van klassen en objecten. Een klasse in OOP is een blauwdruk om een object te maken. Een klasse heeft eigenschappen en methoden. Een object is een instantie van een klasse. OOP bevat vier pijlers, zoals overerving, polymorfisme, abstractie en inkapseling. Dit artikel bespreekt het verschil tussen polymorfisme en overerving in OOP. Het belangrijkste verschil tussen polymorfisme en overerving in OOP is dat polymorfisme het vermogen van een object is om zich op meerdere manieren te gedragen en dat overerving een nieuwe klasse maakt met behulp van eigenschappen en methoden van een bestaande klasse.

Wat is polymorfisme in OOP?

Polymorfisme is om meerdere vormen aan te geven. Een object kan meerdere gedragingen hebben. Polymorfisme kan worden onderverdeeld in twee categorieën. Ze overbelasten en overheersen.

Overbelasting

Verwijs naar het onderstaande programma geschreven in Java.

Verschil tussen polymorfisme en overerving in OOP
Verschil tussen polymorfisme en overerving in OOP

Figuur 01: Overbelasting

Volgens het bovenstaande programma wordt een object van het type A gemaakt. Bij het aanroepen van obj.sum(); het geeft de uitvoer gerelateerd aan methode sum(). Bij het aanroepen van de obj.sum(2, 3); het geeft de uitvoer gerelateerd aan som (int a, int b). Het kan worden waargenomen dat hetzelfde object verschillende gedragingen heeft, afhankelijk van de situatie. Wanneer er meerdere methoden zijn met dezelfde naam, maar met verschillende parameters, staat dit bekend als overbelasting. Het is ook bekend als statische binding of compilatietijdpolymorfisme.

Overschrijven

Een ander type polymorfisme overheerst. Raadpleeg het onderstaande programma geschreven in Java.

Verschil tussen polymorfisme en overerving in OOP_Figuur 02
Verschil tussen polymorfisme en overerving in OOP_Figuur 02

Figuur 02: Overschrijven

Volgens het bovenstaande programma is er een methode display() in klasse A. Klasse B strekt zich uit van klasse A. Daarom zijn alle methoden in klasse A toegankelijk voor klasse B. Het is overerving. Het overervingsconcept wordt later verder beschreven.

Klasse B heeft ook dezelfde methode display(). Bij het maken van een object van het type A en het aanroepen van weergavemethode, geeft de uitvoer B. De weergavemethode van klasse A wordt overschreven door de weergavemethode van klasse B. Dus de uitvoer is B.

Als er methoden zijn met dezelfde naam en dezelfde parameters, maar in twee verschillende klassen, en ze zijn gekoppeld aan overerving, staat dit bekend als overschrijven. Het is ook bekend als Late binding, Dynamic Binding, Runtime Polymorphism. Overbelasting en overschrijven worden polymorfisme genoemd. Het is een belangrijk concept in Object Oriented Programming.

Wat is overerving in OOP?

Verwijs naar het onderstaande programma geschreven in Java.

Belangrijkste verschil tussen polymorfisme en overerving in OOP
Belangrijkste verschil tussen polymorfisme en overerving in OOP

Figuur 03: Voorbeeld van overerving

Volgens bovenstaand programma heeft klasse A methode sum() en klasse B methode sub().

De methode sum() van klasse A kan worden gebruikt in klasse B met het sleutelwoord extend. Het hergebruiken van de eigenschappen en methoden in een bestaande klasse om een nieuwe klasse te maken, wordt overerving genoemd. Zelfs er is geen methode sum() in klasse B; het is geërfd van klasse A. Overerving is handig voor herbruikbaarheid van code. De oudere klasse wordt de basisklasse, superklasse of bovenliggende klasse genoemd. De afgeleide klasse wordt de subklasse of onderliggende klasse genoemd.

Soorten overerving

Er zijn verschillende soorten overerving. Dit zijn overerving op één niveau, overerving op meerdere niveaus, meervoudige overerving, hiërarchische overerving en hybride overerving.

Enkele erfenis

In Single Inheritance is er één superklasse en één subklasse. Als klasse A de superklasse is en klasse B de subklasse, zijn alle eigenschappen en methoden van klasse A toegankelijk voor klasse B. Er is maar één niveau; daarom wordt het overerving op één niveau genoemd.

Overerving op meerdere niveaus

In Multi-Level Inheritance zijn er drie klassenniveaus. De tussenklasse erft van de superklasse. De subklasse erft van de tussenklasse. Als er drie klassen zijn als A, B en C en A is de superklasse en B is de tussenklasse. Dan erft B van A en C erft van B, het is een Multi-Level Overerving.

Meervoudige erfenis

In Multiple Inheritance zijn er veel superklassen en één subklasse. Als er drie superklassen zijn genaamd A, B, C en D is de subklasse, dan kan klasse D erven van A, B en C. Multiple Inheritance wordt ondersteund in programmeertaal C++. Het wordt niet ondersteund in programmeertalen zoals Java of C. Er worden interfaces gebruikt voor het implementeren van Multiple Inheritance in deze talen.

Hiërarchische erfenis

Als er klassen zijn die A worden genoemd als superklassen en B en C subklassen zijn, kunnen die subklassen eigenschappen en methoden van klasse A erven. Dat soort overervingstype staat bekend als Hiërarchische overerving.

Hybride erfenis

Er is nog een speciaal overervingstype dat bekend staat als hybride overerving. Het is een combinatie van meerdere niveaus en meerdere erfenissen. Als A, B, C en D klassen zijn en B erft van A en D erft van zowel B als C, dan is het een hybride overerving.

Wat zijn de overeenkomsten tussen polymorfisme en overerving in OOP?

Beide zijn concepten van objectgeoriënteerd programmeren

Wat is het verschil tussen polymorfisme en overerving in OOP?

Polymorfisme versus overerving in OOP

Polymorfisme is het vermogen van een object om zich op meerdere manieren te gedragen. Overerving is het maken van een nieuwe klasse met behulp van eigenschappen en methoden van een bestaande klasse.
Gebruik
Polymorfisme wordt gebruikt voor objecten die tijdens het compileren en tijdens runtime welke vorm van methoden aanroepen. Overerving wordt gebruikt voor herbruikbaarheid van code.
Implementatie
Polymorfisme is geïmplementeerd in methoden. Overerving is geïmplementeerd in klassen.
Categorieën
Polymorfisme kan worden onderverdeeld in overbelasting en overheersing. Overerving kan worden onderverdeeld in enkelvoudige, meervoudige, hiërarchische, hybride en meervoudige overerving.

Samenvatting – Polymorfisme versus overerving in OOP

Polymorfisme en overerving zijn belangrijke concepten in objectgeoriënteerd programmeren. Het verschil tussen polymorfisme en overerving in OOP is dat polymorfisme een algemene interface is voor meerdere vormen en dat overerving een nieuwe klasse maakt met behulp van eigenschappen en methoden van een bestaande klasse. Beide concepten worden veel gebruikt in Software Development.

Download de PDF Polymorphism vs Inheritance in OOP

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden volgens de citatienota. Download hier de PDF-versie. Verschil tussen polymorfisme en overerving in OOP

Aanbevolen: