Hallo,
mit folgendem Programm wird ein Array der Klasse Lebewesen erstellt, welches mit den untergeordneten Klassen Mensch/Hund befüllt wird.
Anschließend soll das Array durchgegangen werden und jeweils klassenspezifisch eine Methode aufrufen:
Der auskommentierte Befehl lebewesen[x].reden(); ist aber nicht möglich, da Lebewesen keine Methode reden haben. Menschen aber schon, nur kann er das nicht erkennen.
Wie kann ich auf Methoden der Sub-Klasse zugreifen? (getHaarfarbe ist Methode der Lebewesen-Klasse)
Gruß
Gismodin
mit folgendem Programm wird ein Array der Klasse Lebewesen erstellt, welches mit den untergeordneten Klassen Mensch/Hund befüllt wird.
Anschließend soll das Array durchgegangen werden und jeweils klassenspezifisch eine Methode aufrufen:
Code:
public class Project {
public static void main(String[] args) {
Lebewesen[] lebewesen = new Lebewesen[5];
Scanner s = new Scanner(System.in);
String eingabe = "";
int i = 0;
while(i < lebewesen.length) {
System.out.println("Welches Lebewesen soll erstellt werden? (mensch/hund/ende)");
eingabe = s.next();
if(eingabe.equals("hund")) {
lebewesen[i] = new Hund();
i++;
}else if(eingabe.equals("mensch")) {
lebewesen[i] = new Mensch();
i++;
}else if(eingabe.equals("ende")) {
i = lebewesen.length;
}else {
System.out.println("Ungültige Eingabe!");
}
}
for(int x = 0; x < lebewesen.length; x++) {
if(lebewesen[x] instanceof Mensch) {
System.out.println("BlaBla!");
// lebewesen[x].reden();
System.out.println("" + lebewesen[x].getHaarfarbe());
}else if(lebewesen[x] instanceof Hund) {
System.out.println("WauWau!");
}else {
System.out.println("leer");
}
}
}
}
Der auskommentierte Befehl lebewesen[x].reden(); ist aber nicht möglich, da Lebewesen keine Methode reden haben. Menschen aber schon, nur kann er das nicht erkennen.
Wie kann ich auf Methoden der Sub-Klasse zugreifen? (getHaarfarbe ist Methode der Lebewesen-Klasse)
Gruß
Gismodin