Du hast eine Menge HInweise auf "Füchse" in deiner Löwen-Klasse. Welche von den Klassen sind vorgegeben und welche sollst du implementieren? Wie lautet denn die Aufgabenstellung?
Wenn Methode von zwei Klassen weitestgehend gleich sind, geht man so vor: man sucht die die (wenigen) Stellen, an denen sich die Methoden unterscheiden, und implementiert das unterschiedliche Verhalten der Klassen durch Aufruf von Methoden, die dann in den verschiedenen Klassen unterschiedlich implementiert werden.
In dem konkreten Fall könnte das so aussehen: agiere ruft die Methode gebaereNachwuchs auf, die für Löwe und Fuchs wieder sehr ähnlich ist. Der einzige Unterschied besteht darin, dass in der Löwen-Methode neue Löwen instanziiert werden, und in der Fuchs-Methode neue Füchse. Du könntest die Zeilen [ICODE]Fuchs jung = new Fuchs(false, feld, pos);[/ICODE] und [ICODE]Loewe jung = new Loewe(false, feld, pos);[/ICODE] durch die Zeile
[ICODE]Tier jung = erzeugeNachkommen(false, feld, pos);[/ICODE] ersetzen. Dazu musst in der Tier-Klasse eine geeignete abstrakte Methode deklarieren und sie in Löwe und Fuchs implementieren.
Ich habe oben geschrieben "könnte", den im konkreten Fall macht die Sichtbarkeit der Methoden einen Strick durch die Rechnung. Damit das ganze funktioniert, darf gebaereNachwuchs NICHT private sein, sondern muss mindestens protected sein, also von Unterklassen aufrufbar bzw. in Unterklassen überschreibbar.
Wer hat sich das bloss ausgedacht? Oder anders gefragt: wie lautet die Aufgabenstellung.