Junior
Wanneer vindt het overschrijven van een methode (overriding) plaats?
sobes.tech AI
Antwoord van AI
Method overschrijven (overriding) vindt plaats in de erfhiërarchie wanneer een subklasse haar eigen implementatie biedt van een methode die al is gedefinieerd in de superklasse met dezelfde naam, handtekening (overeenstemming in type en aantal parameters) en returntype (of covariante in het geval van het returntype van het object).
Belangrijke kenmerken:
- Erfelijkheid: Overschrijven is alleen mogelijk binnen de context van erfelijkheid (ouder- en subklassen).
- Handtekening: De methode in de subklasse moet dezelfde handtekening hebben (naam, aantal en types van parameters) en hetzelfde returntype (of een covariante subtype) als de methode in de superklasse.
- Toegankelijkheid: De methode die wordt overschreven, moet toegankelijk zijn voor de subklasse (meestal
public,protected). - Polymorfisme: Overschrijven vormt de basis van runtime polymorfisme, waardoor objecten van de subklasse kunnen reageren op methodeaanroepen op hun eigen manier, zelfs als ze worden aangesproken via een referentie naar de superklasse.
Voorbeeld (Java):
// Superklasse
class Animal {
// Methode die overschreven wordt
public void makeSound() {
System.out.println("Dier maakt een geluid");
}
}
// Subklasse
class Dog extends Animal {
// Overschrijving van makeSound()
@Override // De @Override annotatie is optioneel, maar wordt aanbevolen
public void makeSound() {
System.out.println("Hond blaft");
}
}
Gebruikvoorbeeld:
// Maak een Dog-object
Animal myDog = new Dog();
// Roep de methode aan. De overschreven versie uit Dog wordt aangeroepen
myDog.makeSound(); // Output: Hond blaft
// Maak een Animal-object
Animal someAnimal = new Animal();
// Roep de methode aan. De versie uit Animal wordt aangeroepen
someAnimal.makeSound(); // Output: Dier maakt een geluid