Object-Oriented Programming (OOP) is een paradigma om een programma te ontwerpen met behulp van klassen en methoden. Echte wereldscenario's kunnen worden toegewezen aan objecten. Daarom is het eenvoudig om software-oplossingen te bouwen. Een klas is een blauwdruk om een object te bouwen. Het bevat eigenschappen en methoden. Voordat er bijvoorbeeld een studentenobject wordt gemaakt, moet er een klassestudent 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 kenmerken zijn. Na het maken van de klasse is het mogelijk om objecten te maken met behulp van deze. Objectcreatie is ook bekend als Object Instantiation. Object bestaat niet op zichzelf. Ze communiceren met andere objecten en gegevens worden doorgegeven binnen objecten. Eén pijler van OOP is Overerving. Het doel van Inheritance is het vergroten van de code-herbruikbaarheid. 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 multi-level overerving zijn inheritance-types. Dit artikel bespreekt het verschil tussen hen. De belangrijk verschil tussen meerdere en multilevel Overerving is dat Multiple Inheritance is wanneer een klasse erft van veel basisklassen, terwijl Multilevel Inheritance is wanneer een klasse erft van een afgeleide klasse die van die afgeleide klasse een basisklasse maakt voor een nieuwe klasse.
1. Overzicht en belangrijkste verschil
2. Wat is Multiple Inheritance
3. Wat is Multilevel Overerving
4. Overeenkomsten tussen meervoudige en multiniveau-overerving
5. Vergelijking zij aan zij - Meerdere versus multilevel overerving in tabelvorm
6. Samenvatting
Multiple Inheritance 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. Meerdere inheritanties worden niet veel gebruikt in softwareprojecten. Het maakt het systeem complexer omdat een klasse veel klassen overneemt.
Neem bijvoorbeeld aan dat klasse A en B beide een methode hebben met dezelfde naam die de som () is en klasse C is afgeleid van beide klassen. Nadat u een object van type C en een methode sum () aanmaakt, kan dit een fout veroorzaken omdat beide klassen dezelfde methode hebben. De compiler weet niet welke functie moet worden aangeroepen. Daarom verhoogt Multiple Inheritance de complexiteit van een systeem. Meerdere overerving wordt ondersteund in C ++ -taal, maar talen zoals Java en C # ondersteunen meerdere overnamen niet. In plaats daarvan gebruiken deze talen een interface die vergelijkbaar is met een klasse, maar niet kan worden geïnstantieerd.
Multilevel Overerving is wanneer een klasse erft van een afgeleide klasse die van die afgeleide klasse een basisklasse maakt voor een nieuwe klasse.
Figuur 02: Overerving op meerdere niveaus
Multilevelovername heeft drie niveaus. De tussenklasse die B van klasse A en klasse C erft, 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 behulp van Java.
Figuur 03: Programma dat multilevel-overerving 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 per klasse B. Alle eigenschappen en methoden van klasse B zijn per klasse toegankelijk C. Daarom heeft klasse C toegang tot eigenschappen en methoden van zowel A als B. Bij het maken van een object van type C is het mogelijk om alle drie methoden A (), B () en C () aan te roepen. De uitvoer geeft A, B, C.
Meervoudige overerving versus multiniveau-overerving | |
Meervoudige overerving is een overervingssoort waarbij een klasse erft van meer dan één basisklasse. | Multiniveau-overerving is een overervingssoort die erft van een afgeleide klasse, waardoor die afgeleide klasse een basisklasse is voor een nieuwe klasse. |
Gebruik | |
Multiple Inheritance wordt niet veel gebruikt omdat het het systeem complexer maakt. | Multilevel Overerving wordt veel gebruikt. |
Klasse niveaus | |
Multiple Inheritance heeft twee klassenniveaus, namelijk basisklasse en afgeleide klasse. | Multilevel Inheritance heeft drie klassenniveaus, namelijk, basisklasse, tussenliggende klasse en afgeleide klasse. |
Overerving is een belangrijke pijler van Object Oriented Programming. Er zijn verschillende soorten overerving; het zijn Single Level Inheritance, Multilevel Inheritance, Multiple Inheritance, Hierarchical Inheritance and Hybrid Inheritance. De Single Level Inheritance heeft één basisklasse en één afgeleide klasse. Hiërarchische overerving heeft één basisklasse en veel afgeleide klassen. De hybride overerving is een combinatie van multiniveau en meerdere overerving. In dit artikel wordt het verschil beschreven tussen Meervoudige overerving en Meeraderlijke overerving. Het verschil tussen meervoudige en multilevel-overerving is dat meerdere overerving een klasse is van veel basisklassen, terwijl multiniveau-overerving een klasse is van een afgeleide klasse, waardoor die afgeleide klasse een basisklasse voor een nieuwe klasse is. Erkenning op meerdere niveaus wordt veel gebruikt dan Multiple Inheritance.
U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden, zoals per citaatnotitie. Download hier de PDF-versie. Verschil tussen meervoudige en multiniveau-overerving
1.Singh, Chaitanya, et al. "Typen inheritance in Java: Single, Multiple, Multilevel & Hybrid." Beginnersbook.com, 6 december 2013. Beschikbaar Hier
2.tutorialspoint.com. "Java Inheritance." Het punt. Beschikbaar Hier
1.'Multiple Inheritance'door Suman Maverick Gangulian Suman420 - Eigen werk, (CC BY 3.0) via Commons Wikimedia
2.'Multilevel Inheritance'Door Auteur: Suman Maverick Gangulian Suman420 (talk) 12:03, 2 maart 2015 (UTC) - Eigen werk, (CC BY 3.0) via Commons Wikimedia