【发布时间】:2013-05-21 19:59:43
【问题描述】:
我使用继承看到了类似的东西,但我想使用接口
我想创建一个由不同对象组成的数组列表。
ArrayList 包含以下对象 |Duck, Duck, Goose, Duck, Goose, Pig|我可以随意添加鸭子和鹅。我想这样做,例如,假设我想吃一只鸭子,一旦我吃完鸭子,我就可以吃另一只鸭子并遍历每个项目并运行“吃”方法,例如
|我可以这样做吗:
public interface Animal {..}
public class Duck implements Animal(){}
public class Goose implements Animal{
List<Animal> link = new ArrayList<Animal>;
Goose(Duck d){
link.add(d);
}
Goose(Goose g){
link.add(g);
}
Goose g3 = new Goose(new Duck);
Goose g2 = new Goose(g2);
}
`
【问题讨论】:
-
我很难理解你的问题是什么。如果您的源代码已格式化并且没有语法错误(例如,
...new ArrayList<Animal>;应该是...new ArrayList<Animal>();,末尾有括号),这也将有助于潜在的回答者。 -
我认为答案是“是的”。您可以将接口用作类型参数。一般来说,回答这类问题的最好方法就是自己尝试一下。
-
您遗漏了很多可能有助于澄清的代码。正如尼克建议的那样清理并完成它,也许我们可以提供帮助。您的代码似乎与您的问题不符。本质上,“我可以执行以下操作吗:”将回答否,因为以下代码不吃任何鸭子,也不会从任何列表中删除任何鸭子。
-
是的,你可以定义一个名为Animal的接口,它允许你声明一个ArrayList,其中包含任何实现Animal的对象。但是,您的代码中的语法不正确。
-
这里是an answer,这与您想做的事情有些相关。
标签: java list object interface