【发布时间】:2017-08-09 08:45:04
【问题描述】:
这是我的代码:-
ArrayList<animal> myanimals = new ArrayList<animal>();
dog adog = new dog();
myanimals.add(adog);
System.out.println("" + myanimals.get(0).getClass());
dog newdog = myanimals.get(0);
我创建了一个 animals(superclass) 的ArrayList 作为myanimals 并存储了一个 dog(subclass) 作为第一个元素。然后myanimals.get(0) 返回一个狗类型的对象。当这个狗类型对象在语句dog newdog = myanimals.get(0) 中被狗类型引用引用时,它会显示错误消息:
类型不匹配,无法从动物转换为狗。
为什么会这样?
【问题讨论】:
-
欢迎来到 StackOverflow。请将代码和错误发布为文本,而不是图片
-
感谢您的编辑建议。 @Shashwat
标签: java oop arraylist polymorphism