Junior
Wat is het verschil tussen abstractie en polymorfisme?
sobes.tech AI
Antwoord van AI
Abstractie richt zich op het verbergen van implementatiedetails en het bieden van een vereenvoudigde voorstelling van een object. Polymorfisme maakt het mogelijk om objecten van verschillende klassen te behandelen als objecten van een basisklasse of interface, waarbij specifieke acties voor elk object worden uitgevoerd.
| Kenmerk | Abstractie | Polymorfisme |
|---|---|---|
| Essentie | Details verbergen, algemeen overzicht bieden | De mogelijkheid om objecten van verschillende typen op een uniforme manier te behandelen |
| Doel | Vereenvoudiging, vermindering van complexiteit | Flexibiliteit, uitbreidbaarheid, universeelheid van code |
| Hoe wordt het bereikt | Abstracte klassen, interfaces | Method overloaden, method overriding, interfaces |
| Voorbeeld | Klasse Auto zonder motordetails |
Methode rij() in verschillende klassen (Sedan, Vrachtwagen) |
Voorbeeld van abstractie (gebruik van abstractie):
interface Vorm {
// Abstracte methode
double berekenOppervlakte();
}
class Cirkel implements Vorm {
private double straal;
public Cirkel(double straal) {
this.straal = straal;
}
@Override
public double berekenOppervlakte() {
// Implementatiedetails zijn verborgen achter de interface-methode
return Math.PI * straal * straal;
}
}
Voorbeeld van polymorfisme:
// Gebruik van polymorfisme
Vorm mijnVorm = new Cirkel(5);
// Aanroepen van de methode berekenOppervlakte() via de referentie van het basistype (interface Vorm)
// In werkelijkheid wordt de methode berekenOppervlakte() uit de klasse Cirkel uitgevoerd
double oppervlakte = mijnVorm.berekenOppervlakte();
System.out.println("Oppervlakte: " + oppervlakte);