我该如何在项目中实现object类型的多态引用?

时间:2014-11-03 11:18:55

标签: java

以下是我一直在努力解决的程序。

arrayList必须将对象视为Dog

ArrayList<Dog> myDogArryList=new ArrayList<Dog>();
Dog aDog=new Dog();
myDogArrayList.add(aDog);
Dog d=myDogArrayList.get(0);

现在,如果我想要一个Generics arrayList来获取各种对象: 我可以在数组列表中使用“对象”类型作为泛型。 请指导程序实现或从我可以清楚理解的地方提供任何其他示例工作代码。

2 个答案:

答案 0 :(得分:0)

ArrayList本身将采用任何类型的对象,你可以混合它们,如果你不想?

但如果你想要某种类型的安全,你可能不会做这样的事情:

class Dog extends Animals {
}

class Cat extends Animals {
}

List<? extends Animal> animals = new ArrayList<>();
animals.add(new Dog());
animals.add(new Cat());

答案 1 :(得分:0)

ArrayList<Object> myDogArrayList=new ArrayList<Object>();
Dog aDog=new Dog();
myDogArrayList.add(aDog);//works sice Object is an ancestor of all classes 
//it return the type as Object , so need to cast it 
Dog d=(Dog)myDogArrayList.get(0)

注意:假设你有Dog的超类,说Animal你可以考虑将ArrayList设为ArrayList<Animal>,不建议ArrayList<Object>类型。