Ich lerne gerade Java und habe mir mal ein fertiges Programm angesehen, aber ich verstehe es nicht ganz.
Insbesondere verwirrt mich oben folgendes:
Ist das ein Array oder eine Methode? Oder beides? Und warum steht da auch nochmal abstract davor, wenn doch die Klasse schon abstrakt ist?
Danke für die Info
.
Code:
// abstrakte Klasse für Säugetiere
abstract class Saeugetier {
int anzahlBeine;
String farbe;
// "simuliere" Nachwuchs erzeugen
abstract Saeugetier[] werfe(int anz);
}
// Katzenklasse als Unterklasse der Säugetiere
class Katze extends Saeugetier {
// Klassenvariable für die möglichen Katzenfarben
static String katzenFarben[] = {"getiegert", "schwarz", "rot", "schwarzweiss"};
// Katzenkonstrukor
Katze(int anzahl, String f) {
anzahlBeine = 4;
farbe = f;
}
// überschriebene Methode um einen Wurf zu erzeugen
Saeugetier[] werfe (int anz) {
Saeugetier wurf[] = new Katze[anz];
for (int i=0;i<anz;i++)
wurf[i] = new Katze(4,Katze.katzenFarben[i%4]);
return wurf;
}
// Hauptmethode für die Katze Pepi und deren Wurf
public static void main (String args[]) {
System.out.println("Säugetier- /Katzenprogramm");
Katze pepi = new Katze(4, "schwarz");
Saeugetier pepisKids[];
pepisKids = pepi.werfe(7);
System.out.println("Folgende Katzenjungen wurden von Pepi geboren: ");
for (int i=0;i<7;i++)
System.out.println("Nr " + i + ": " + pepisKids[i].farbe + " mit " +
pepisKids[i].anzahlBeine + " Beinen");
}
}
Insbesondere verwirrt mich oben folgendes:
Code:
abstract Saeugetier[] werfe(int anz);
Ist das ein Array oder eine Methode? Oder beides? Und warum steht da auch nochmal abstract davor, wenn doch die Klasse schon abstrakt ist?
Danke für die Info