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);