Abstrakte Klassen
Aus FI-Wiki
Abstrakte Klassen dienen als allgemeine Oberklassen und können nicht direkt instanziiert werden. Sie enthalten oft gemeinsame Implementierungen sowie abstrakte Methoden, die von Unterklassen konkret definiert werden müssen.
Eigenschaften
- Mit dem Schlüsselwort abstract gekennzeichnet
- Können konkrete (implementierte) und abstrakte (nicht implementierte) Methoden enthalten
- Dürfen nicht instanziiert werden (kein new)
Beispiel
abstract class Figur {
String farbe;
public void setFarbe(String farbe) {
this.farbe = farbe;
}
// abstrakte Methode ohne Implementierung
abstract double berechneFlaeche();
}
Unterklassen müssen Methode implementieren
class Kreis extends Figur {
double radius;
@Override
double berechneFlaeche() {
return Math.PI * radius * radius;
}
}
class Rechteck extends Figur {
double breite;
double hoehe;
@Override
double berechneFlaeche() {
return breite * hoehe;
}
}
Verwendung
Figur f = new Kreis();
f.setFarbe("rot");
System.out.println(f.berechneFlaeche());
Figur g = new Rechteck();
g.setFarbe("gelb");
System.out.println(g.berechneFlaeche());
