我想初始化几个子类,并将它们全部放入超类哺乳动物的数组中。有了这段代码,我得到了错误:找不到适合add(wolf)的方法。我不知道我在做什么错,任何帮助都是值得的。

class gameRunner{
   cow Cow = new cow();
   wolf Wolf = new wolf();
   ArrayList<mammal> mammalArray = new ArrayList<mammal>();

   public gameRunner(){
     mammalArray.add(Cow);
     mammalArray.add(Wolf);
   }
}

最佳答案

基本上,要创建这些类,您首先需要拥有一个哺乳动物类

对我来说,与此一起工作

public abstract class Mammal{

  //Constructor
  //Getters and Setters
}


然后创建您将拥有的子类

public Cow extends Mammal{
  //Constructor
  //Getters and Setters
}




public Wolf extends Mammal{
  //Constructor
  //Getters and Setters
}


这样我就可以在主类中创建一个可以容纳两个对象且没有编译器错误的arraylist

class gameRunner{
   Cow cow = new Cow();
   Wolf wolf = new Wolf();
   ArrayList<Mammal> mammalArray = new ArrayList<Mammal>();

  public gameRunner(){
      mammalArray.add(cow);
      mammalArray.add(wolf);
   }
 }


我拥有哺乳动物类的原因是您无法实例化一个抽象类,但是可以实例化它的子类,并且这些子类可以继承超类的方法

希望这有帮助:)

08-29 00:09