Verschil Tussen Overerving En Compositie

Verschil Tussen Overerving En Compositie
Verschil Tussen Overerving En Compositie

Video: Verschil Tussen Overerving En Compositie

Video: Verschil Tussen Overerving En Compositie
Video: genetica - X-chromosomale kruising 2024, April
Anonim

Overerving versus compositie

Overerving en compositie zijn twee belangrijke concepten die te vinden zijn in OOP (Object Oriented Programming). In eenvoudige bewoordingen hebben zowel Composition als Inheritance betrekking op het verstrekken van aanvullende eigenschappen of gedrag aan een klas. Overerving is het vermogen van een klasse om eigenschappen en gedrag van een bovenliggende klasse over te nemen door deze uit te breiden. Aan de andere kant is Composition het vermogen van een klasse om objecten van verschillende klassen als lidgegevens te bevatten.

Wat is erfenis?

Zoals hierboven vermeld, is Overerving het vermogen van een klasse om eigenschappen en gedrag van een bovenliggende klasse over te nemen door deze uit te breiden. Overerving biedt in wezen hergebruik van code door uitbreiding van eigenschappen en gedrag van een bestaande klasse door een nieuw gedefinieerde klasse toe te staan. Als klasse A B uitbreidt, wordt klasse B de bovenliggende klasse (of superklasse) genoemd en wordt klasse A de kindklasse (of afgeleide klasse / subklasse) genoemd. In dit voorbeeldscenario neemt klasse A alle openbare en beveiligde kenmerken en methoden van de superklasse (B) over. De subklasse kan optioneel het van de bovenliggende klasse geërfde gedrag overschrijven (nieuwe of uitgebreide functionaliteit voor methoden bieden).

Overerving vertegenwoordigt een "is-a" -relatie in OOP. Dit betekent in wezen dat A ook een B is. Met andere woorden, B kan de klasse zijn met een algemene beschrijving van een bepaalde entiteit uit de echte wereld, maar A specificeert een bepaalde specialisatie. In een echt programmeerprobleem kan de klasse Persoon worden uitgebreid om de klasse Werknemer te creëren. Dit heet specialisatie. Maar u kunt ook eerst de klasse Employee maken en deze vervolgens ook generaliseren naar een klasse Persoon (dwz generalisatie). In dit voorbeeld heeft de werknemer alle eigenschappen en het gedrag van de persoon (dwz de werknemer is ook een persoon) en kan hij ook enkele aanvullende functionaliteit bevatten (dus persoon is geen werknemer).

Wat is compositie?

Compositie is het vermogen van een klasse om objecten van verschillende klassen als lidgegevens te bevatten. Klasse A kan bijvoorbeeld een object van klasse B als lid bevatten. Hier kunnen alle openbare methoden (of functies) die in B zijn gedefinieerd, worden uitgevoerd binnen klasse A. Klasse A wordt de container, terwijl klasse B de ingesloten klasse wordt. Compositie wordt ook wel Containership genoemd. In dit voorbeeld kan worden gezegd dat klasse A is samengesteld uit klasse B. In OOP vertegenwoordigt Composition een "has-a" -relatie. Het is belangrijk op te merken dat, hoewel de container toegang heeft om alle openbare methoden van de ingesloten klasse uit te voeren, deze niet in staat is om te wijzigen of extra functionaliteit te bieden. Als het gaat om een echt programmeerprobleem, kan een object van de klasse TextBox aanwezig zijn in de klasse Form,en dus kan worden gezegd dat een formulier een tekstvak bevat (of als alternatief een formulier is samengesteld uit een tekstvak).

Wat is het verschil tussen overerving en compositie?

Hoewel Inheritance en Composition twee OOP-concepten zijn, verschillen ze nogal van wat ze de programmeur mogelijk maken. Overerving is het vermogen van een klasse om eigenschappen en gedrag van een bovenliggende klasse over te nemen door deze uit te breiden, terwijl Composition het vermogen is van een klasse om objecten van verschillende klassen als lidgegevens te bevatten. Als een klasse wordt uitgebreid, erft deze alle openbare en beschermde eigenschappen / gedragingen en die gedragingen kunnen worden overschreven door de subklasse. Maar als een klasse zich in een andere bevindt, krijgt de container niet de mogelijkheid om gedrag te wijzigen of toe te voegen aan het bevat. Overerving vertegenwoordigt een "is-een" -relatie in OOP, terwijl Compositie een "heeft-een" -relatie vertegenwoordigt.

Aanbevolen: