Animal是一个超类
Feline是Animal的子类
Cat是Feline的子类
犬是动物的一个次级
Dog是Canine的子类
所有类都有自己的eat()方法输出:
“(班级)正在吃”
我已经尝试过创建一个动物数组,循环遍历它们,并调用eat()方法,该方法为每个给定的动物输出正确的输出。
我的问题是,通过这样做可以获得什么:
Cat j = new Animal();
对于使用Animal类型的方法,不会Cat j = new Cat()
做任何你需要做的事情,因为它已经是通过继承的动物了吗?
编辑:对不起,我的意思是相反 - 通过声明获得了什么: Animal j = new Cat();
对不起!
答案 0 :(得分:0)
通过这样做我们实现了运行时多态性。
基于对象的类型,将调用重写的方法
现在开始玩你的问题了
只有一行回答
猫总是动物
Animal a = new Cat();//ok
所有动物都不是猫
Cat c = new Animal();//not ok
here是学习和理解这个
的好例子答案 1 :(得分:0)
为什么要将子类对象分配给超类引用?
多态性
进行测试时模拟对象
如果您希望将来将其替换为其他实施
最常用于继承和抽象类