Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向包含继承的ArrayList添加属性?_Java_Arraylist_Multiple Inheritance - Fatal编程技术网

Java 如何向包含继承的ArrayList添加属性?

Java 如何向包含继承的ArrayList添加属性?,java,arraylist,multiple-inheritance,Java,Arraylist,Multiple Inheritance,我正在做一个关于继承的赋值,到目前为止我已经创建了一个超类a子类。在这些类中,添加了一些方法来定义诸如动物名称或年龄之类的信息。现在,我被要求做以下工作: 使用main方法创建一个演示类,该方法创建动物对象的ArrayList。用不同的动物、不同的名字和年龄填写清单 我完全被这搞糊涂了。如果我尝试在新的ArrayList中创建动物,它会告诉我动物类是抽象的,不能实例化。以下是相关课程的内容: 动物级(超级级) 狼类(子类) import java.util.ArrayList; 公营狼类食肉

我正在做一个关于继承的赋值,到目前为止我已经创建了一个超类a子类。在这些类中,添加了一些方法来定义诸如动物名称或年龄之类的信息。现在,我被要求做以下工作:

  • 使用main方法创建一个演示类,该方法创建动物对象的ArrayList。用不同的动物、不同的名字和年龄填写清单
我完全被这搞糊涂了。如果我尝试在新的ArrayList中创建动物,它会告诉我动物类是抽象的,不能实例化。以下是相关课程的内容:

动物级(超级级)

狼类(子类)

import java.util.ArrayList;
公营狼类食肉动物
{
ArrayList foodGroup=新建ArrayList();
字符串名;
智力年龄;
Wolf(字符串名,整数)
{  
this.name=名称;
这个。年龄=年龄;
}
狼()
{
超级();
}
公共场所噪音()
{
noise=“Woof!”;
}
公共字符串getNoise()
{
回波噪声;
}
公共食品吃(食品x)抛出例外
{ 
if(肉类的x实例){
返回x;
}否则{
抛出新的异常(“食肉动物只吃肉!”);
}
}
公共空吃(食物,整数){
而(计数>0){
添加食物(食物);
计数--;
}
}
公共食品(食品信息)
{
foodGroup.add(inFood);
}
}
演示类

abstract public class Animal 
{

    int age;
    String name;
    String noise;

Animal(String name, int age)   
{
    this.age = age;
    this.name = name;
} 

Animal()
{

  this("newborn", 0);
}

abstract public void makeNoise();

public String getName() {
        return name;
    }
  public int getAge()
    {
        return age;
    }

    public void setName(String newName) {
        name = newName;
    }

abstract public Food eat(Food x) throws Exception;

abstract public void eat(Food food, int count) throws Exception;


}
import java.util.ArrayList;

public class Wolf extends Carnivore
{

            ArrayList<Food> foodGroup = new ArrayList<>();
String name;
int age;

Wolf(String name, int age)   
{  
    this.name = name;
    this.age = age;
}
Wolf()
{
  super();
}
    public void makeNoise()  
    {
        noise = "Woof!";
    }
    public String getNoise()  
    {
        return noise;
    }

    public Food eat(Food x) throws Exception
    { 
        if (x instanceof Meat) {
                return x;
            } else {
               throw new Exception("Carnivores only eat meat!");
            }
    }
public void eat(Food food, int count) {
    while (count > 0) {
        addFood(food);
        count--;
    }
}


public void addFood(Food inFood)
{
  foodGroup.add(inFood);
}
}
import java.util.ArrayList;

public class Demo {

    public static void main(String[] args) 
    {
                    ArrayList<Animal> animalGroup = new ArrayList<>();
     //Add new Animals with properties such as name and age?           
     Animal wolf1 = new Wolf();

    addAnimal(new Wolf("lnb1g16", 6));

    }

    public static void addAnimal(Animal inAnimal)
{
    animalGroup.add(inAnimal);
}

}
import java.util.ArrayList;
公开课演示{
公共静态void main(字符串[]args)
{
ArrayList animalGroup=新的ArrayList();
//添加具有名称和年龄等属性的新动物?
动物狼1=新狼();
addAnimal(新狼(“lnb1g16”,6));
}
公共静态动物(无生命动物)
{
动物组。添加(无生命);
}
}
显然,我想在演示类中根据前面的这些类创建一个动物数组?我不明白这将如何实现,以及为什么我需要创建另一个主方法。任何关于我将如何编写演示课程的帮助都将不胜感激,因为我被要求做的事情弄糊涂了,谢谢

演示类

public static void main(String[] args) 
{
                ArrayList<Animal> animalGroup = new ArrayList<>();
 //Add new Animals with properties such as name and age?           
 Animal wolf1 = new Wolf();

animalGroup.add(new Wolf("sam", 5));
animalGroup.add(new Wolf("george", 5));
animalGroup.add(new Wolf("patrick", 7));

}
publicstaticvoidmain(字符串[]args)
{
ArrayList animalGroup=新的ArrayList();
//添加具有名称和年龄等属性的新动物?
动物狼1=新狼();
添加(新狼(“sam”,5));
添加(新狼(“乔治”,5));
添加(新狼(“帕特里克”,7));
}
演示类

public static void main(String[] args) 
{
                ArrayList<Animal> animalGroup = new ArrayList<>();
 //Add new Animals with properties such as name and age?           
 Animal wolf1 = new Wolf();

animalGroup.add(new Wolf("sam", 5));
animalGroup.add(new Wolf("george", 5));
animalGroup.add(new Wolf("patrick", 7));

}
publicstaticvoidmain(字符串[]args)
{
ArrayList animalGroup=新的ArrayList();
//添加具有名称和年龄等属性的新动物?
动物狼1=新狼();
添加(新狼(“sam”,5));
添加(新狼(“乔治”,5));
添加(新狼(“帕特里克”,7));
}

食肉动物是否扩展了动物?如果是这样的话,试着创建一个wolf并将其添加到ArrayList中-它有效吗?如果不是,错误是什么?食肉动物确实扩展了动物。当我创建一个新的wolf对象,然后尝试将其添加到ArrayList中时,如图所示
wolf1(新动物(“wolf”,6))我得到错误“动物是抽象的,不能实例化”。你有一个Wolf类,所以你不应该做新的Wolf吗(..
食肉动物是否扩展了动物?如果是,请尝试创建一只狼并将其添加到您的ArrayList中-是否有效?如果不是,错误是什么?食肉动物确实扩展了动物。当我创建一个新的狼对象,然后尝试将其添加到ArrayList中时,如下图所示
wolf1(新动物(“wolf”,6));
我得到了错误“动物是抽象的,不能实例化”。你有一个Wolf类,所以你不应该做新Wolf吗(..您需要创建一个main方法来实际实例化所有的单个动物。动物的类就像一个蓝图,在您基于该蓝图构建动物之前无法实际运行。main方法构建所有动物。而且您应该只需要一个main方法。您真的不需要任何其他方法演示类中的所有方法。感谢您的帮助,这使它更容易理解。您需要创建一个主方法来实际实例化所有单个动物。动物的类就像一个蓝图,在您基于该蓝图构建动物之前无法实际运行。主方法构建所有动物。还有你应该只需要一个主方法。你真的不应该在演示类中需要任何其他方法。谢谢你的帮助,这使它更容易理解。