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. De belangrijk verschil tussen Polymorphism en Inheritance in OOP is dat Polymorfisme is het vermogen van een object om zich op meerdere manieren te gedragen en overerving is om een nieuwe klasse te maken met behulp van eigenschappen en methoden van een bestaande klasse.
1. Overzicht en belangrijkste verschil
2. Wat is polymorfisme in OOP
3. Wat is Overerving in OOP
4. Overeenkomsten tussen polymorfisme en overerving in OOP
5. Vergelijking zij aan zij - Polymorfisme vs. Overerving in OOP in tabelvorm
6. Samenvatting
Polymorfisme is om meerdere vormen aan te geven. Eén object kan meerdere gedragingen hebben. Polymorfisme kan in twee categorieën worden verdeeld. Ze zijn overladen en overheersend.
Raadpleeg het onderstaande programma geschreven in Java.
Figuur 01: Overbelasting
Volgens het bovenstaande programma wordt een object van 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 sum (int a, int b). Het kan worden opgemerkt dat hetzelfde object verschillende gedragingen heeft, afhankelijk van de situatie. Als er meerdere methoden met dezelfde naam zijn, maar met verschillende parameters, is dit bekend als overbelasting. Het is ook bekend als statische binding of compileer tijd polymorfisme.
Een ander type polymorfisme is dwingende. Raadpleeg het onderstaande programma geschreven in Java.
Figuur 02: Overheersend
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 inheritance. Het overervingsconcept wordt verderop beschreven.
Klasse B heeft ook dezelfde methode-weergave (). Bij het maken van een object van type A en aanroepende weergavemethode, geeft de uitvoer B. Klasse A weergavemethode wordt overschreven door klasse B weergavemethode. Dus de uitvoer is B.
Wanneer er methoden zijn met dezelfde naam en dezelfde parameters, maar in twee verschillende klassen, en ze zijn gekoppeld aan overerving, staat deze bekend als dwingend. Het is ook bekend als Late binding, Dynamic Binding, Runtime Polymorphism. Overbelasting en overheersing worden polymorfisme genoemd. Het is een belangrijk concept in Object-Oriented Programming.
Raadpleeg het onderstaande programma geschreven in Java.
Figuur 03: Voorbeeld van overerving
Volgens het bovenstaande programma heeft klasse A methode sum () en klasse B heeft methode sub ().
De methode som () van klasse A kan worden gebruikt in klasse B met behulp van het trefwoord extend. Het opnieuw gebruiken van de eigenschappen en methoden in een bestaande klasse om een nieuwe klasse te maken, wordt Overerving genoemd. Zelfs is er geen sum () -methode in klasse B; het is overgenomen van klasse A. Overerving is handig voor hergebruik van code. De oudere klasse wordt de basisklasse, superklasse of ouderklasse. De afgeleide klasse wordt de subklasse of kinder klas.
Er zijn verschillende soorten overerving. Ze zijn Single-Level Inheritance, Multi-Level Inheritance, Multiple Inheritance, Hierarchical Inheritance and Hybrid Inheritance.
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 slechts één niveau; daarom wordt het genoemd als single-level overerving.
In Multi-Level Inheritance zijn er drie klassenniveaus. De tussenklasse erft van superklasse. De subklasse erft van de tussenklasse. Als er drie klassen zijn, zijn A, B en C en A de superklasse en B de tussenklasse. Vervolgens erft B van A en C erft van B, het is een multi-level overerving.
In Multiple Inheritance zijn er veel superklassen en een 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 #. Interfaces worden gebruikt voor het implementeren van Multiple Inheritance in deze talen.
Als er klassen zijn die A worden genoemd als superklassen en B, C subklassen zijn, kunnen die subklassen eigenschappen en methoden van klasse A erven. Dat soort overervingstype staat bekend als hiërarchische overerving.
Er is nog een ander type speciale erfenis dat bekend staat als Hybrid Inheritance. Het is een combinatie van meerdere niveaus en meerdere erfenissen. Als A, B, C en D klassen zijn en B van A erven en van zowel B als C overerven, dan is het een hybride overerving.
Polymorfisme vs Erfelijkheid in OOP | |
Polymorfisme is een vermogen van een object om zich op meerdere manieren te gedragen. | Overerving is om een nieuwe klasse te maken met behulp van eigenschappen en methoden van een bestaande klasse. |
Gebruik | |
Polymorfisme wordt gebruikt voor objecten om te bellen welke vorm van methoden tijdens compilatie en runtime. | Overerving wordt gebruikt voor hergebruik van code. |
Implementatie | |
Polymorfisme wordt geïmplementeerd in methoden. | Overname wordt geïmplementeerd in klassen. |
Categorieën | |
Polymorfisme kan worden verdeeld in overbelasting en overheersing. | Overerving kan worden onderverdeeld in single-level, multi-level, hiërarchische, hybride en multiple inheritance. |
Polymorphism and Inheritance zijn belangrijke concepten in Object Oriented Programming. Het verschil tussen polymorfisme en overerving in OOP is dat polymorfisme een veel voorkomende interface is naar meerdere vormen en overerving een nieuwe klasse maakt met behulp van eigenschappen en methoden van een bestaande klasse. Beide concepten worden veel gebruikt in Software Development.
U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden, zoals per citaatnotitie. Download hier de PDF-versie Verschil tussen polymorfisme en Erfenis in OOP