我想初始化几个子类并将它们全部放入超类哺乳动物的数组中。使用此代码我得到错误:找不到添加(狼)的合适方法。我不知道我做错了什么,感谢任何帮助。
class gameRunner{
cow Cow = new cow();
wolf Wolf = new wolf();
ArrayList<mammal> mammalArray = new ArrayList<mammal>();
public gameRunner(){
mammalArray.add(Cow);
mammalArray.add(Wolf);
}
}
答案 0 :(得分:5)
基本上要创建这些类,首先需要有一个哺乳动物类
对我来说,我正在使用这个
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);
}
}
为什么我有Mammal类是你不能实例化一个抽象类,但你可以实例化它的子类,子类可以继承超类中的方法
希望这有助于:)
答案 1 :(得分:1)
在没有看到其他课程的情况下很难说但是试试这个:
由于牛看起来很好,我猜你已经从奶牛类中扩展了哺乳动物...所以确保 狼延伸哺乳动物这个错误对我来说是& #34;嘿,我不能给这个哺乳动物阵列增加一只狼!狼甚至不是一种哺乳动物...所以去检查它是否延伸了哺乳动物朋友&#34;