假设IUncle是Uncle实现的接口。 假设我不会在类Child中使用具体的类,因为我希望Child可以与Iuncle的任何实现一起使用。 如何以对Uncle的任何实现方式起作用的方式更改Child(下面)的实现。
public class Child {
private List<IUncle> uncles;
public Child(List<IUncle> uncles){
this.uncles = uncles;
}
public void addUncle(IUncle uncle) {
this.uncles.add(uncle);
}
}
在主类中,我使用这个类:
List<Uncle> uncles = new ArrayList<Uncle>();
Child oneChild = new Child(uncles);
oneChild.addUncle(new Uncle);
这根本不起作用!!!
请问,有人能给出正确的方法来处理java中的这种情况吗?
答案 0 :(得分:0)
您遇到语法错误,我不确定您的Uncle
课程是什么样的,但请尝试
oneChild.addUncle(new Uncle ());
您指定了添加Uncle
的方法但未使用它。
此外,我认为您的IUncle
界面(??)与您的对象Uncle
相混淆。它们不是一回事,也不可互换。
答案 1 :(得分:0)
我之前的一位经理给出了答案。这很简单!
事实上,儿童班没有任何问题。问题出在主要课程中。哪个,应该是这样的:
List<IUncle> uncles = new ArrayList<IUncle>();
Child oneChild = new Child(uncles);
oneChild.addUncle(new Uncle);
谢谢!