Abstrakte Klassen: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:
     String farbe;
     String farbe;


```
public void setFarbe(String farbe) {
    this.farbe = farbe;
}


    public void setFarbe(String farbe) {
// abstrakte Methode ohne Implementierung
        this.farbe = farbe;
abstract double berechneFlaeche();
    }
```
 
    // abstrakte Methode ohne Implementierung
    abstract double berechneFlaeche();


} </syntaxhighlight>
} </syntaxhighlight>


=== Unterklasse muss Methode implementieren ===
=== Unterklassen müssen Methode implementieren ===


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
Zeile 31: Zeile 32:
     double radius;
     double radius;


    @Override
```
    double berechneFlaeche() {
@Override
        return Math.PI * radius * radius;
double berechneFlaeche() {
     }
    return Math.PI * radius * radius;
}
```
 
}
 
class Rechteck extends Figur {
double breite;
double hoehe;
 
```
@Override
double berechneFlaeche() {
     return breite * hoehe;
}
```


} </syntaxhighlight>
} </syntaxhighlight>

Version vom 27. Oktober 2025, 15:39 Uhr

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