Guten Abend,
ich verstehe nicht wieso ich mit dem Erstellen eines Objektes Huhn nicht auch auf die Methode zugreifen kann.
Organismus d = new Huhn; klappt nicht, aber Huhn d = new Huhn; geht.
Ich meine Huhn erbt ja von Organismus, und ich definieren es ja auch als new Huhn.
Was genau verstehe ich hier falsch? Ich kann die Methode nicht abstrakt machen,
da andere Klassen auch von Organismus erben, aber die Methode nicht besitzen sollen.
ich verstehe nicht wieso ich mit dem Erstellen eines Objektes Huhn nicht auch auf die Methode zugreifen kann.
Organismus d = new Huhn; klappt nicht, aber Huhn d = new Huhn; geht.
Ich meine Huhn erbt ja von Organismus, und ich definieren es ja auch als new Huhn.
Was genau verstehe ich hier falsch? Ich kann die Methode nicht abstrakt machen,
da andere Klassen auch von Organismus erben, aber die Methode nicht besitzen sollen.
Java:
public class TestOrganismus {
public static void main(String[] args) {
Organismus[] lebewesen = new Organismus [5];
//Organismus d = new Huhn geht nicht?
Huhn d = new Huhn(10.3, 3, "Freiland", "Weiß");
lebewesen[0] = d;
System.out.println(d.leistungProJahr());
}
}
Java:
public abstract class Organismus{
public String ID;
public double gewicht;
static int count =1;
public Organismus(double gewicht){
if(this instanceof Huhn)
this.ID = "Huhn" + count++;
if(this instanceof Katze)
this.ID= "Katze" + count++;
if(this instanceof Kartoffel)
this.ID= "Kartoffel" + count++;
if(this instanceof Pflanze)
this.ID= "Pflanze" + count++;
if(this instanceof Tulpe)
this.ID="Tulpe" + count++;
if(this instanceof Orchidee)
this.ID= "Orchidee" + count++;
this.gewicht = gewicht;
}
}
Java:
public class Huhn extends Organismus implements Ertrag{
public int eierProJahr; // Ertrag pro Jahr
public String haltung; // 'Oekologische Erzeugung', 'Freiland', 'Boden' oder 'Kleingruppen'
public String farbe;
public Huhn(double gewicht, int eierProJahr, String haltung, String farbe){
super(gewicht);
this.eierProJahr = eierProJahr;
if(haltung =="Oekologische Erzeugung" || haltung == "Freiland" || haltung == "Boden" || haltung == "Kleingruppen")
this.haltung = haltung;
else
System.exit(0);
this.farbe = farbe;
}
public String leistungProJahr () {
String str = "Eier pro Jahr: " + eierProJahr;
return str;
}
}