Abstrakte Klassen und Methoden
Abstrakte Klassen sind Klassen, die einen Bauplan für andere Klassen vorgeben, deswegen lassen sich auch keine Objekte aus den abstrakten Klassen instanziieren. Erbende Klassen bekommen durch abstrakte Methoden bestimmte Signaturen, die sie implementieren müssen wenn sie aus einer abstrakten Klasse erben wollen. Abstrakte Methoden sind Methoden ohne Rumpf, die von den erbenden Klassen überschrieben werden müssen.
Abstrakte Klassen in Klassendiagrammen
Abstrakte Klassen müssen mit einem {abstract}
oben gekennzeichnet werden, die abstrakten Methoden ebenfalls.
Abstrakte Klassen in Code
Basierend auf dem Klassendiagramm siehe oben.
Abstrakte Klasse Figur
Um eine Klasse als abstrakt zu deklarieren muss vor class
das abstract
gesetzt werden, das gleiche gilt für Methoden.
public abstract class Figur
{
protected int punktzahl;
protected boolean istEingetragen;
public Figur()
{
istEingetragen = false;
punktzahl = 0;
}
public boolean istEingetragen()
{
return istEingetragen;
}
public int liesPunktzahl()
{
return punktzahl;
}
public abstract void trageEin(int[] pAugenzahl);
}
Erbende Klasse Einser
Da die Klasse Einser
aus Figur
erbt, muss sie die abstrakte Methode trageEin
selbst implementieren.
public class Einser extends Figur
{
public void trageEin(int[] pAugenzahl)
{
for (int w = 0; w < pAugenzahl.length; w++)
{
if (pAugenzahl[w] == 1)
{
punktzahl += pAugenzahl[w];
}
}
istEingetragen = true;
}
}