Wat is erfenis en polymorfisme in de context van referentietypen?
sobes.tech AI
Antwoord van AI
Erfelijkheid is een mechanisme van OOP waarmee je nieuwe klassen kunt maken op basis van bestaande klassen. De nieuwe klasse (subklasse) erft velden en methoden van de ouderklasse, en kan ook eigen velden toevoegen of bestaande overschrijven. Dit bevordert hergebruik van code en het creëren van logische hiërarchieën.
Polymorfisme is het vermogen van objecten van verschillende klassen om verschillend te reageren op dezelfde methode. Voor referentietypen betekent dit dat je met objecten van verschillende klassen kunt werken via een verwijzing naar de basisklasse of interface. De concrete implementatie van de opgeroepen methode hangt af van het werkelijke type van het object tijdens runtime. Er zijn twee hoofdtypen polymorfisme:
- Statisch (method overloading): Dezelfde methode heeft meerdere implementaties met verschillende parametersets. De compiler bepaalt welke te gebruiken op basis van de handtekening van de methode.
- Dynamisch (method overriding): De subklasse biedt zijn eigen implementatie van de methode, die al is gedefinieerd in de ouderklasse. De methode wordt aangeroepen via een verwijzing naar de ouderklasse om de implementatie in de subklasse uit te voeren (indien aanwezig).