Sobes.tech
Junior

Was ist der Unterschied zwischen Abstraktion und Polymorphismus?

sobes.tech KI

Antwort von AI

Abstraktion konzentriert sich darauf, Implementierungsdetails zu verbergen und eine vereinfachte Darstellung des Objekts bereitzustellen. Polymorphismus ermöglicht es, Objekte verschiedener Klassen als Objekte einer Basisklasse oder Schnittstelle zu behandeln und spezifische Aktionen für jedes Objekt auszuführen.

Merkmal Abstraktion Polymorphismus
Wesentlich Details verbergen, eine allgemeine Ansicht bieten Die Fähigkeit, Objekte verschiedener Typen einheitlich zu behandeln
Ziel Vereinfachung, Reduzierung der Komplexität Flexibilität, Erweiterbarkeit, Universalität des Codes
Wie erreicht Abstrakte Klassen, Schnittstellen Methodenüberladung, Überschreibung von Methoden, Schnittstellen
Beispiel Klasse Auto ohne Motordetails Methode fahren() in verschiedenen Klassen (PKW, LKW)

Beispiel für Abstraktion (Verwendung von Abstraktion):

interface Form {
    // Abstrakte Methode
    double berechneFlaeche(); 
}

class Kreis implements Form {
    private double radius;

    public Kreis(double radius) {
        this.radius = radius;
    }

    @Override
    public double berechneFlaeche() {
        // Implementierungsdetails sind durch die Schnittstellenmethode verborgen
        return Math.PI * radius * radius; 
    }
}

Beispiel für Polymorphismus:

// Verwendung von Polymorphismus
Form meineForm = new Kreis(5); 
// Aufruf der Methode berechneFlaeche() über die Referenz des Basistyps (Schnittstelle Form)
// Es wird tatsächlich die Methode berechneFlaeche() aus der Klasse Kreis ausgeführt
double flaeche = meineForm.berechneFlaeche(); 

System.out.println("Flaeche: " + flaeche);