Animal animal = new Dog();和 Dog animal = new Dog();除了不能引用子类独有的方法外,有区别吗? Animal animal = new Dog();到底是怎样的意思?
1 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
这里突出的是java中的多态技术,使用多态可极大程度上提高代码的可复用性,消除类型之间的耦合关系。
定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
例如本例中的狗是一种动物,但是如果现在有一个Cat类,她也继承至Animal类,那么对于方法:
public void cry(Animal animal) { ..... }
就可以传入Animal类的子类对象,产生一个上转型动作,实现多态,既可以:
cry(new Cat());
也可以
cry(new Dag());
这样,使用多态技术就可以在以后的项目拓展时传入一个Animal类的子类(如Snake类)而不用改动其基本架构。
添加回答
举报
0/150
提交
取消