Hi Leute,
mal eine sicher blöde Frage:
Ich habe zwei Abstrakte Klassen: Humanoid und Arachnoid
Nun leite ich von der Humanoid Klasse zb Human und Elf ab.
Ich erzeuge mit einen Menschen und einen Elfen.
Diese möchte ich nun in einem Array oder was auch immer vorhalten um später mit diesen zu arbeiten.
Leider kann ich die Objekte Mensch und Elf nicht zusammen in eine "Creaturen" - Liste legen, da ich ja den Datentyp der ArrayList angeben muss.
Somit habe ich dann nur Zugriff auf die Methoden und Vaiablen der Abstrakten Klasse.
Wie kann ich das sonst hinbekommen? Wo liegt mein Denkfehler?
Wäre dankbar für etwas Hilfe.
System.out.println(o.getRasse() + " ## " + o.getCreatureID() + " ## " + o.getHaarfarbe() + " ## " + o.getToll());
o.getToll() ist undefiniert.
mal eine sicher blöde Frage:
Ich habe zwei Abstrakte Klassen: Humanoid und Arachnoid
Nun leite ich von der Humanoid Klasse zb Human und Elf ab.
Ich erzeuge mit einen Menschen und einen Elfen.
Diese möchte ich nun in einem Array oder was auch immer vorhalten um später mit diesen zu arbeiten.
Leider kann ich die Objekte Mensch und Elf nicht zusammen in eine "Creaturen" - Liste legen, da ich ja den Datentyp der ArrayList angeben muss.
Somit habe ich dann nur Zugriff auf die Methoden und Vaiablen der Abstrakten Klasse.
Wie kann ich das sonst hinbekommen? Wo liegt mein Denkfehler?
Wäre dankbar für etwas Hilfe.
Java:
public abstract class Humanoid {
private String rasse;
private String haarfarbe;
public Humanoid(String rasse) {
this.rasse = rasse;
}
getter und setter
}
Java:
public class Human extends Humanoid {
public String toll;
protected String getToll() {
return toll;
}
protected void setToll(String toll) {
this.toll = toll;
}
public Human() {
super("Mensch");
this.setHaarfarbe("grüne Haare");
this.toll = "2";
}
}
Java:
public static void main(String[] args) {
Human Human = new Human();
Elf Elf = new Elf();
Ogre Ogre = new Ogre();
Orc Orc = new Orc();
ArrayList<Humanoid> lHumanoid = new ArrayList<Humanoid>();
lHumanoid.add(Human);
lHumanoid.add(Elf);
lHumanoid.add(Ogre);
lHumanoid.add(Orc);
for(int z = 0; z < lHumanoid.size();z++){
Humanoid o = lHumanoid.get(z);
System.out.println(o.getRasse() + " ## " + o.getCreatureID() + " ## " + o.getHaarfarbe() + " ## " + o.getToll());
}
}
System.out.println(o.getRasse() + " ## " + o.getCreatureID() + " ## " + o.getHaarfarbe() + " ## " + o.getToll());
o.getToll() ist undefiniert.
Zuletzt bearbeitet: