我有這樣的代碼,例如,我有一個超級抽象類動物和一個抽象的子類鳥,和一個鳥AmericanRobin的子類,我想填充數據在美國羅賓創建從動物的對象鳥,但我不知道該怎麼做,因爲我想創建另一個名爲國內金絲雀的小類,並將其構造函數的值傳遞給他的超類構造函數來創建一個對象,任何建議?從java中的子類的子類傳遞值
public abstract class Animal {// SuperClass animal
private String Kind,Appearance;
Animal(String Kind,String Appearance) {
this.Kind = Kind;
this.Appearance = Appearance;
}
public abstract void eat();
public abstract void move();
@Override public String toString() {
return "("+Kind+","+Appearance+")";
}
public abstract class Bird extends Animal {//SubClass of superClass Animal
Bird(String Kind, String Appearance) {
super(Kind, Appearance);
}
@Override public void eat() {
System.out.println("Eats seeds and insects");
}
@Override public void move() {
System.out.println("Flies throught the air");
}
}
public abstract class Fish extends Animal{//SubClass of SuperClass Animal
Fish(String Kind, String Appearance){
super(Kind,Appearance);
}
@Override public void eat() {
System.out.println("Eats krill, algae and insects");
}
@Override public void move() {
System.out.println("Swims throught the water");
}
}
//== Here the pain begins ==
public class AmericanRobin extends Bird {
AmericanRobin(String Kind, String Appearance) {
super(Kind, Appearance);
}
}
public class DomesticCanary extends Bird{
DomesticCanary(String Kind, String Appearance) {
super(Kind, Appearance);
}
}
}
請告訴我不是爲你工作,請解釋。你會得到什麼樣的錯誤,或者預期什麼與實際產出有關。 – nullpointer
創建和鳥類一樣多的類是一種矯枉過正。你應該創建'動物americancan =新鳥(「美國金絲雀」,「可能是褐色」)和'動物domesticcan =新鳥(「國內金絲雀」,「非常豐富多彩」)等等......如果需要添加另一個數據成員/變量說'genus'可能是(旁邊'kind'和'外觀') – kaza
以及這是一個練習我有一個抽象的主要類和其他抽象類父親的動物,動物 - >鳥類和魚類 - >鳥類和魚類。 動物層次的Model部分通過聲明動物,鳥,魚, 旅鶇,DomesticCanary,RainbowTrout和SockeyeSalmon 類: –