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.

alt

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.

Figur.java
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.

Einser.java
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;
    }
}