Du hast eine neue → Klasse AllesKoennerHamster erstellt. Das Schlüsselwort extends Hamster charakterisiert die Klasse als "Erben", der Klasse Hamster.
Jede von AllesKoennerHamster abgeleitete Klasse kennt auch die Methoden und Attribute dieser Klasse.
class AllesKoennerHamster extends Hamster { AllesKoennerHamster(int reihe, int spalte, int blickrichtung, int koerner) { this.init(reihe, spalte, blickrichtung, koerner); } }
StaffelHamster(int reihe, int spalte, int blickrichtung, int koerner) { super(3, 0, Hamster.OST, 0); }
StaffelHamster laeufer;
this.laeufer = new StaffelHamster(this.getReihe(), this.getSpalte(), Hamster.OST, 0);
this.laeufer.schritteVor(anzahlSchritte);
Eventuell sind nicht alle acht Hamster sichtbar, weil sie sich gegenseitig verdecken!
NachwuchsHamster nachwuchs; NachwuchsHamster(int reihe, int spalte, int blickrichtung, int koerner) { // Aufruf der uebergeordneten Klasse AllesKoennerHamster super(reihe, spalte, blickrichtung, 0); }
final static int ANZAHL_HAMSTER = 8;
void lauf() { this.geheZuKachel(this.zufallsZahl(. . .), . . .);
if (Territorium.getAnzahlHamster(this.getReihe(), this.getSpalte()) > 1) { this.nachwuchs = new NachwuchsHamster(this.getReihe() . . . ); }
this.nachwuchs = null;... und diese auf den Nachwuchs anwenden:
if (this.nachwuchs != null) this.nachwuchs.lauf();
/* Reihe, Spalte, Blickrichtung wird durch Zufall bestimmt zufallsZahl(maxZahl) ist eine Methode der Klasse AllesKoennerHamster maxZahl ist die Anzahl der Reihen Territorium.getAnzahlReihen() - 1 bzw. Spalten */ NachwuchsHamster willi = new NachwuchsHamster(NachwuchsHamster.zufallsZahl(Territorium.getAnzahlReihen() - 1) . . .)
while (Hamster.getAnzahlHamster() < NachwuchsHamster.ANZAHL_HAMSTER) { . . . }