Java:多态的总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43336822/article/details/101713924

多态的综述

首先,我们要先清楚多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式,这个消息也就是方法的调用。

多态是java的四大特性之一,它的实现原理(一般是指动多态)是地址覆盖,它遵循【当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定调用谁的成员方法(前提是这个方法是在父类中定义过的,也就是已经被子类重写过的方法)】的原则。

方法表是实现动态调用的核心,一个方法表中有继承自父类的方法表项也有自身重写(override)的方法表项,而每一个表项都是一个指针。之所以父类引用指向子类对象是多态的条件之一,也就是因为只有子类的方法表中的父类方法被子类重写成自身方法,才有多态这个概念。

java实现多态的条件有继承,重写和向上造型。

多态的分类

(1)静多态(编译期多态,静态绑定)
方法重载:①同一个作用域(类);②方法名相同,参数列表不同

(2)动多态(运行期多态,动态绑定)
条件:
①继承;
②方法重写;(子类重写的方法覆盖了父类的方法)
③向上造型(基类的引用:要用的方法子类没有父类有,就用子类对象引用父类,也就是父类引用指向子类对象。) 在这里插入图片描述
哈哈哈哈哈这个图片就很形象啦~~

多态的优点

1)可替换性:多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。

2)可扩充性:多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。

3)灵活性:它在应用中体现了灵活多样的操作,提高了使用效率。

4)简化性:多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

猜你喜欢

转载自blog.csdn.net/qq_43336822/article/details/101713924
今日推荐