当前位置: 首页 > 知识库问答 >
问题:

用来自几个类的信息填充ArrayList

祁承望
2023-03-14

我正在尝试填写一个数组列表。我有三节课。第一类叫做动物,它是一个抽象的类。在这里,我为年龄和名称设置了两个字段,并为当前动物的声音设置了一个抽象方法。我还做了另外两个班,分别叫狗和蛙。我为每种动物设定了年龄、名字和动物的声音(狗的BAU BAU...例如:D)。问题是我不能用集合中的每一个动物的信息填充arraylist。我将在主题中复制这里的类。

public abstract class Animals {

    public int age = 0;
    public String name = null;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract String sound();
}` 

    public class Dog extends Animals {

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

    @Override
    public String sound() {
        return ("Bau Bau" + "Kucheto e na " + this.age + " godini. I se kazva " + this.name + ".");
    }

}

    public class Frog extends Animals {

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

    @Override
    public String sound() {
        return ("Kva Kva" + "Zajabate e na " + this.age + " godini. I se kazva " + this.name + ".");
    }
}

public class Program {

public static void main(String[] args) {

    ArrayList<Animals> animals = new ArrayList<>();
    Dog dog = new Dog(12, "Kiro");
    Frog frog = new Frog(44, "Nacho");

    animals.add(dog.sound()); here is the error ????

}

共有1个答案

华建同
2023-03-14

你只需要输入动物的类型。只有动物的对象或动物的亚类对象才是动物的一种类型。狗的声音不是动物。

ArrayList中包含所有动物之后,您可以循环ArrayList并对每个动物调用sound方法。如果sound确实是在Animals类中定义的方法。

 类似资料:
  • 问题内容: 我已经为此工作了好几个小时,试图弄清楚为什么没有出现所谓的简单自动完成功能。 事实证明,在我的代码中,input元素被设置为,而pac-container上的样式为。 我可以在DevTools中更改这些值,并且效果很好,但是我不知道如何或为什么将这些值设置为这些值。 我的自动完成功能是在这样的Angular Directive中设置的,其中loadGmaps获取google api。

  • 我正在从Ajax JSON创建一个DataTable。 将创建DataTables,但它显示一个错误: DataTables警告:表ID=CHANGETABLE-为行0,列0请求未知参数“0”。有关此错误的详细信息,请参阅http://datatables.net/TN/4 我的JSON看起来如下所示 在我的Java控制器中创建了这样的JSON对象: 我不知道如何将此信息与 属性一起使用,以使其适

  • 我知道这个话题已经贴了很多次了,但这个问题没有真正的解决办法。 最近,在一些应用程序中,我决定进行更新。这是将库版本(admob)更改为最新版本的一次小更新。我还将targetSdkVersion从25更改为26。几天后,我检查了admob上的统计数据,所有这些应用的填充率都降到了0!请求的数量也增加了。用于横幅和间隙。其他应用程序不受影响。 我认为有一些愚蠢的错误,但我在代码中找不到任何问题。

  • 我在几个表单上遇到了chrome自动填充行为的问题。 表单中的字段都有非常常见和准确的名称,如“email”、“name”或“password”,它们还设置了。 autocomplete标志已成功禁用了autocomplete行为,在该行为中,当您开始键入时会显示下拉值,但没有更改Chrome将字段自动填充为的值。 这个行为是可以的,除非chrome不正确地填充输入,例如用电子邮件地址填充电话输入

  • 首先,我想说我已经有几年没有编码了,所以我的知识有点不稳定。我在寻求一些帮助,基本上是朝着正确的方向推进。我的任务是完成一个FizzBuzz游戏变体的程序,规则是:从1-9输入2位数字,一个Fizz数字和一个buzz数字(例如: 2-7) 如果n可被fizzNumber整除,或包含数字fizzNumber,则返回“fizz” 所以我把这部分记下来,我的代码如下,它编译正确。 现在我的下一个目标是实

  • 问题内容: 就像是有什么,但对?我要显示的数据是使用的关联。 我已经尝试使用过,但是在这种情况下,我必须在hibernate状态下使用它,这需要我指定using,并且每当我检索到through时,列表中的元素之间都会有空格,具体取决于。 我需要自动填充集合,因为我需要在创建时动态生成。当我使用plain时,得到以下内容: 还有其他解决方案吗? 编辑 我正在尝试实现动态表格 问题答案: 您无法在MV