→ Interfaces sind den → abstrakten Klassen sehr ähnlich. Sie definieren abstrakte Methoden, die als "Rahmenwerk" für Klassen dienen können.
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; }