我有Parent类和Child子类。我想制作一个ArrayList,可以在其中存储这两个类的对象。这样有可能吗?
我尝试了以下操作:
ArrayList<Parent> list= new ArrayList<Parent>();
Parent a;
Parent b;
Child c;
list.add(a);
list.add(b);
list.add(c);
至此,编译器没有收到任何错误消息,因此我认为可以。但是,当我尝试对来自ArrayList的对象使用Child的方法时,我将无法使用它!尽管
list.get(2).countNumbers();
这给我一个错误,方法countNumbers在Child中。我很困惑,在此先感谢您!
您要声明您的列表:
List<Parent> list = new ArrayList<>();
这将告诉Java您接受任何扩展或成为Parent的Class。
由于List
将包含Parent
类型,因此要使用Child
对象,必须将其强制转换为:
Parent o = list.get(x);
if (o instanceof Child) {
Child child = (Child) o;
// Do something with child
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句