Java中的Arraylist和继承

3

我该如何把两个来自于不同类,但是都继承自同一个超级类的对象放入一个单一的数组列表中?


6
创建一个超类的ArrayList,可以将子类的实例放入其中。 - sarveshseri
2
先生 - 这是一个基本的Java问题。通过一些谷歌搜索,肯定会对您有所帮助。 - Nilesh
创建一个新的超类arraylist,如下所示:ArrayList<Superclass> list = new ArrayList<Superclass>();然后继续添加任何子类的实例,如下所示:list.Add(subclass); - Tarske
使用泛型 ArrayList<? extends superclass>,或者默认的 Object 类型的 ArrayList。 - Prashant
1
@Prashant 这就是为什么应该始终避免使用原始类型。原始类型绝对是不可取的。 - Tom
显示剩余6条评论
3个回答

8
List<Parent> listValue = new ArrayList<Parent>();
listValue.add(new Child1());
listValue.add(new Child2());

Child1和Child2都继承自“Parent”类。


3
你可以查看Java库中的类。例如,Shape类是Rectangle和Polygon类的超类。
ArrayList<Shape> list = new ArrayList<Shape>();
list.add(new Rectangle());
list.add(new Polygon());

0
你可以通过创建超类的“ArrayList”来实现。 然后,您可以将子类元素添加到“ArrayList”中。
List<SuperClass> tempList=new ArrayList<SuperClass>();
tempList.add(childClass1);
tempList.add(childClass2);

希望这能解决你的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接