【发布时间】:2015-04-27 23:48:57
【问题描述】:
假设我有一个Animal 的超类和一个Dog 的子类。
我们可以说:
Animal a = new Dog();
我们不能沮丧地说:
Dog b = new Animal();
所以我明白动物不一定是狗。但是,为什么在狗容器中放置动物“蓝图”会引发异常?因为 Dog 继承了 Animal 的方法,所以当我们把这个动物放到狗容器中时,我们知道 Dog 继承/覆盖了 Animal 拥有的所有方法,那么为什么 Java 不允许这样做呢?
谢谢!
【问题讨论】:
-
想一想,当你说动物时,你不能自动假设它是一只狗。但你可以反过来
标签: java oop polymorphism downcast