Belangrijk verschil - Meerdere versus meervoudige overerving
Object-Oriented Programming (OOP) is een paradigma om een programma te ontwerpen met behulp van klassen en methoden. Scenario's uit de echte wereld kunnen worden toegewezen aan objecten. Daarom is het eenvoudig om softwareoplossingen te bouwen. Een klasse is een blauwdruk om een object te bouwen. Het bevat eigenschappen en methoden. Voordat u bijvoorbeeld een leerlingobject maakt, moet er een klasleerling zijn met eigenschappen en methoden. Een student kan eigenschappen hebben zoals student-ID, naam en methoden zoals lezen, schrijven, studeren. Methoden beschrijven het gedrag, terwijl eigenschappen de attributen zijn. Nadat de klasse is gemaakt, is het mogelijk om er objecten mee te maken. Het maken van objecten wordt ook wel Object Instantiation genoemd. Object staat niet op zichzelf. Ze communiceren met andere objecten en gegevens worden binnen objecten doorgegeven. Een van de pijlers van OOP is overerving. Het doel van Inheritance is om de herbruikbaarheid van code te vergroten. Het creëert een nieuwe klasse van eigenschappen en methoden van de reeds bestaande klasse. De bestaande klasse staat bekend als de basisklasse en de nieuwe klasse wordt de afgeleide klasse genoemd. Meervoudige overerving en overerving op meerdere niveaus zijn overervingstypen. Dit artikel bespreekt het verschil tussen hen. Het belangrijkste verschil tussen meerdere en meervoudige overerving is dat meervoudige overerving is wanneer een klasse van veel basisklassen erft, terwijl overerving op meerdere niveaus is wanneer een klasse erft van een afgeleide klasse, waardoor die afgeleide klasse een basisklasse voor een nieuwe klasse wordt.
Wat is meervoudige overerving?
Meervoudige overerving is wanneer een klasse meer dan één basisklasse erft.
Figuur 01: Meervoudige overerving
A B en C zijn klassen. A en B zijn basisklassen en C is de afgeleide klasse. De klasse C moet de afhankelijkheid van beide basisklassen A en B beheren. Meervoudige overerving wordt niet veel gebruikt in softwareprojecten. Het maakt het systeem complexer omdat één klasse vele klassen erft.
Veronderstel bijvoorbeeld dat klasse A en B beide een methode hebben met dezelfde naam, namelijk de sum() en klasse C leidt beide klassen af. Na het maken van een object van het type C en het aanroepen van de methode sum () kan dit een fout veroorzaken omdat beide klassen dezelfde methode hebben. De compiler weet niet welke functie hij moet aanroepen. Daarom verhoogt Multiple Inheritance de complexiteit van een systeem. Multiple Inheritance wordt ondersteund in de C++-taal, maar talen zoals Java en C ondersteunen geen Multiple Inheritance. In plaats daarvan gebruiken deze talen een interface die lijkt op een klasse, maar die niet kan worden geïnstantieerd.
Wat is overerving op meerdere niveaus?
Overerving op meerdere niveaus is wanneer een klasse erft van een afgeleide klasse, waardoor die afgeleide klasse een basisklasse wordt voor een nieuwe klasse.
Figuur 02: Overerving op meerdere niveaus
Overerving op meerdere niveaus heeft drie niveaus. De tussenklasse die B erft van klasse A en klasse C erft van klasse B. A is de basisklasse voor B en B is de basisklasse voor C.
Een programma dat Multilevel Inheritance implementeert is als volgt. Het programma is geschreven met Java.
Figuur 03: Programma dat overerving op meerdere niveaus implementeert
Volgens het bovenstaande programma is klasse A de basisklasse voor klasse B. Klasse B is de basisklasse voor klasse C. Alle eigenschappen en methoden van klasse A zijn toegankelijk voor klasse B. Alle eigenschappen en methoden van klasse B is toegankelijk voor klasse C. Daarom heeft klasse C toegang tot eigenschappen en methoden van zowel A als B. Bij het maken van een object van het type C is het mogelijk om alle drie methoden A (), B () en C () aan te roepen. De uitvoer geeft A, B, C.
Wat is de overeenkomst tussen meervoudige en meervoudige overerving?
Beide zijn soorten overerving
Wat is het verschil tussen meervoudige en meervoudige overerving?
Meerdere overerving versus overerving op meerdere niveaus |
|
Meervoudige overerving is een overervingstype waarbij een klasse van meer dan één basisklasse erft. | Overerving op meerdere niveaus is een overervingstype dat erft van een afgeleide klasse, waardoor die afgeleide klasse een basisklasse wordt voor een nieuwe klasse. |
Gebruik | |
Multiple Inheritance wordt niet veel gebruikt omdat het het systeem complexer maakt. | Overerving op meerdere niveaus wordt veel gebruikt. |
Klasniveaus | |
Multiple Inheritance heeft twee klassenniveaus, namelijk de basisklasse en de afgeleide klasse. | Overerving op meerdere niveaus heeft drie klassenniveaus, namelijk basisklasse, tussenklasse en afgeleide klasse. |
Samenvatting – Meerdere versus meervoudige overerving
Overerving is een belangrijke pijler van objectgeoriënteerd programmeren. Er zijn verschillende soorten overerving; het zijn overerving op één niveau, overerving op meerdere niveaus, meervoudige overerving, hiërarchische overerving en hybride overerving. De Single Level Inheritance heeft één basisklasse en één afgeleide klasse. Hiërarchische overerving heeft één basisklasse en vele afgeleide klassen. De Hybrid Inheritance is een combinatie van Multilevel en Multiple Inheritance. Dit artikel beschreef het verschil tussen meervoudige overerving en meervoudige overerving. Het verschil tussen overerving op meerdere niveaus is dat meervoudige overerving is wanneer een klasse erft van veel basisklassen, terwijl overerving op meerdere niveaus is wanneer een klasse erft van een afgeleide klasse, waardoor die afgeleide klasse een basisklasse voor een nieuwe klasse wordt. Overerving op meerdere niveaus wordt veel gebruikt dan Meervoudige overerving.
Download de PDF Multiple vs Multilevel Inheritance
U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden volgens de citatienota. Download hier de PDF-versie. Verschil tussen meerdere en meervoudige overerving