Sobes.tech
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);