→ Interfaces sind den → abstrakten Klassen sehr ähnlich. Sie definieren abstrakte Methoden, die als "Rahmenwerk" für Klassen dienen können.
Aufgabe:
interface LaufHamster
{
public abstract int rueckeVor();
public abstract int zufallsZahl(int maxZahl);
}
class MogelHamster extends AllesKoennerHamster implements LaufHamster
{
// anzahlDrehung gilt in der gesamten Klasse
// ist anzahlDrehung > 3, ist das Ziel erreicht
// bei Rückkehr auf den Startpunkt wird anzahlDrehung auf 0 gesetzt
static int anzahlDrehung;
MogelHamster (int reihe, int spalte, int blickrichtung, int koerner)
{
super(reihe, spalte, blickrichtung, koerner);
}
// Methoden des interfaces LaufHamster
public int rueckeVor()
{
. . .
}
public int zufallsZahl(int maxZahl)
{
. . .
}
public int rueckeVor()
{
int anzahlSchritte = 0;
int zahl = zufallsZahl(3);
while (anzahlSchritte < zahl)
{
if (this.vornFrei() && this.anzahlDrehung < 3) this.vor();
else
{
this.rechtsUm();
this.anzahlDrehung ++;
}
anzahlSchritte ++;
}
return this.anzahlDrehung;
}
if (paul.kornDa())
{
paul.geheZuKachel(0, 0);
paul.kehrUm();
paul.anzahlDrehung = 0;
}