java - 实现arraylist的java接口
问题描述
我正在编写一个包含ArrayList
狗名字的代码。接口方法允许动物发出声音(例如"woof"
)。我有一个 for 循环,它遍历整个数组并确定动物是否说。我遇到的问题是它obj.speak()
不起作用。每当我运行它时,它会说找不到符号,但我很困惑,因为我已经把它放在那里了。我不知道如何解决这个问题,因为我在多个网站上寻找答案,但它们没有帮助。我假设ArrayList
当我放置一个 for 循环来遍历整个事情时,它正在被循环。
public class Main {
public static void main(String[] args) {
ArrayList dogs= new ArrayList();
dogs.add(new Dog("Fred"));
dogs.add(new Dog("Wanda"));
for (Object e: dogs) {
e.speak();
}
}
}
interface Speak{
public void speak();
}
class Dog implements Speak {
private String name;
public Dog(String name) {
this.name = name;
}
public void speak() {
System.out.println("Woof");
}
}
解决方案
ArrayList 可以/应该采用一个类型
ArrayList<Dog> dogs= new ArrayList<>();
dogs.add(new Dog("Fred"));
dogs.add(new Dog("Wanda"));
for (Dog e: dogs)
{
e.speak();
}
推荐阅读
- javascript - 找不到带有 React-Responsive-Modal 的 react-transition-group/CSSTransition。我需要安装其他东西吗?
- sql - 如何计算一个值在 Where 之后的列数?
- javascript - 如何设置 v-for 索引从某个数字开始?
- html - 更改容器外 div 的位置以悬停在容器中的 div 下方
- javascript - react native:函数作为 react child 无效。如果您返回组件而不是
- php - 从具有特定内容(特殊字符)的数组中删除元素
- php - Twig 将模板的一部分委托给 symfony 3 服务
- html - 如何将我的按钮与 django 中的两个 URL 连接起来?
- javascript - 为什么工作箱 registerRoute 得到一个不透明的响应,而预缓存没有
- python - R lapply 在多个列上与 Python 等效?