私はこのコードを持っています。私はスーパー抽象クラスの動物と抽象サブクラスの鳥を持っています。そして、AmericanRobinのサブクラスです。私はアメリカのロビンでデータを埋めて動物からの鳥の鳥ですが、私はそれを行う方法がわかりません。私はDomestic canaryと呼ばれる別のサブクラスの鳥を作成し、そのコンストラクタの値をスーパークラスのコンストラクタに渡して、オブジェクトを作成します。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
鳥類と同数のクラスを作成することは過度のことです。 Animal americanCan = new Bird( "アメリカンカナリア"、 "ブラウンシング") "と" Animal domesticCan = new Bird( "カラフルなカナル"、 "非常にカラフルな")などを作成する必要があります。データメンバ/変数は '属 'が(kindと' appearance'と並んで) – kaza
であるかもしれないと言っています。これは私が抽象的なメインクラスと他の抽象クラスの動物、動物 - >鳥と魚 - 鳥や魚の種。動物、鳥、魚を宣言することによって、動物の階層の モデルの一部、 コマツグミ、DomesticCanary、RainbowTrout、およびSockeyeSalmon クラス:私は理解し –