Abstrakte Klassen: Unterschied zwischen den Versionen
Aus FI-Wiki
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 14: | Zeile 14: | ||
abstract class Figur { | abstract class Figur { | ||
String farbe; | String farbe; | ||
public void setFarbe(String farbe) { | public void setFarbe(String farbe) { | ||
| Zeile 25: | Zeile 24: | ||
} </syntaxhighlight> | } </syntaxhighlight> | ||
=== | === Unterklassen müssen Methode implementieren === | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
| Zeile 34: | Zeile 33: | ||
double berechneFlaeche() { | double berechneFlaeche() { | ||
return Math.PI * radius * radius; | return Math.PI * radius * radius; | ||
} | |||
} | |||
class Rechteck extends Figur { | |||
double breite; | |||
double hoehe; | |||
@Override | |||
double berechneFlaeche() { | |||
return breite * hoehe; | |||
} | } | ||
| Zeile 44: | Zeile 54: | ||
f.setFarbe("rot"); | f.setFarbe("rot"); | ||
System.out.println(f.berechneFlaeche()); | System.out.println(f.berechneFlaeche()); | ||
Figur g = new Rechteck(); | |||
g.setFarbe("gelb"); | |||
System.out.println(g.berechneFlaeche()); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Kategorie:Programmieren]] | [[Kategorie:Programmieren]] | ||
[[Kategorie:Semester2]] | [[Kategorie:Semester2]] | ||
Aktuelle Version vom 27. Oktober 2025, 15:43 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());
Figur g = new Rechteck();
g.setFarbe("gelb");
System.out.println(g.berechneFlaeche());
