Abstrakte Klassen

Aus FI-Wiki
Version vom 27. Oktober 2025, 15:43 Uhr von Moettke (Diskussion | Beiträge) (Verwendung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Abstrakte Klassen

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