Junior
Wat is overerving en polymorfisme in referentietypen?
sobes.tech AI
Antwoord van AI
Overerving is een mechanisme waarmee een klasse (subklasse, afgeleide klasse) eigenschappen en gedrag van een andere klasse (superklasse, ouderklasse) kan overnemen. Dit bevordert hergebruik van code en het creëren van klassendiagrammen.
Polymorfisme is het vermogen van objecten van verschillende klassen om op verschillende manieren te reageren op dezelfde boodschap (methode-aanroep), afhankelijk van hun specifieke type. In de context van overerving uit zich dit vaak door het overschrijven van methoden van de basisklasse in de afgeleide klasse.
Voorbeeld (Java):
// Basisklasse
class Animal {
public void makeSound() {
System.out.println("Dier maakt geluid");
}
}
// Afgeleide klasse
class Dog extends Animal {
@Override // Methode overschrijven
public void makeSound() {
System.out.println("Woef!");
}
}
// Afgeleide klasse
class Cat extends Animal {
@Override // Methode overschrijven
public void makeSound() {
System.out.println("Miauw!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Object Dog, maar referentie van type Animal
Animal myCat = new Cat(); // Object Cat, maar referentie van type Animal
myDog.makeSound(); // Roept de Dog-methode aan
myCat.makeSound(); // Roept de Cat-methode aan
}
}
In dit voorbeeld:
- Overerving: De klassen
DogenCaterven vanAnimal. - Polymorfisme: De variabelen
myDogenmyCatverwijzen naar respectievelijkDogenCatobjecten, hoewel ze van het typeAnimalzijn. Bij het aanroepen vanmakeSound()wordt de methode van het object uitgevoerd, niet die van het referentietype.