猿问

请问。。。。。。。。。

Animal animal = new Dog();和 Dog animal = new Dog();除了不能引用子类独有的方法外,有区别吗?  Animal animal = new Dog();到底是怎样的意思?

谢思宇啊丶
浏览 1084回答 1
1回答

望远

这里突出的是java中的多态技术,使用多态可极大程度上提高代码的可复用性,消除类型之间的耦合关系。定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。例如本例中的狗是一种动物,但是如果现在有一个Cat类,她也继承至Animal类,那么对于方法:public void cry(Animal animal) {     ..... }就可以传入Animal类的子类对象,产生一个上转型动作,实现多态,既可以:cry(new Cat());也可以cry(new Dag());这样,使用多态技术就可以在以后的项目拓展时传入一个Animal类的子类(如Snake类)而不用改动其基本架构。
随时随地看视频慕课网APP

相关分类

Java
我要回答