java语言实现多态的方式_什么是多态机制?Java语言是如何实现多态的?【详细解释】...-程序员宅基地

技术标签: java语言实现多态的方式  

今天爱分享给大家带来什么是多态机制?Java语言是如何实现多态的?【详细解释】,希望能够帮助到大家。

所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。

多态的实现

Java实现多态有三个必要条件:继承、重写、向上转型。

继承:在多态中必须存在有继承关系的子类和父类。

重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

只有满足了上述三个条件,我们才能够在同一个继承结构中使用统一的逻辑实现代码处理不同的对象,从而达到执行不同的行为。

对于Java而言,它多态的实现机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。

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

智能推荐

系统更新及疑难处理-程序员宅基地

文章浏览阅读345次。系统更新及疑难处理利用WSUS部署更新程序微软公司的主要补丁类型nHotfix是针对某一个具体的系统漏洞或安全问题而发布的专门解决该漏洞或安全问题的小程序,通常称为修补程序n微软公司会及时地将软件产品中发现的重大问题以安全公告的形式公布于众,这些公告都有一个惟一的编号,即“MS”,如MS04-011n还有一种形式为KB(2003年4月份后用此编号)的编号,这个编..._允许来自internetmicrosoft更新服务位置的签名更新

【论文】ROS系统的无人小车自动跟随方案研究-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏45次。本文基于ROS操作系统介绍了一种运动与跟随系统的设计及实现,该跟随系统包括以激光雷达进行全方位角度的距离测量,使用Python语言编写脚本,通过编写激光雷达话题的订阅以及运动话题的发布,完成对目标的运动控制以及对被跟随目标的感知和产生跟随相应的动作。本系统中无论被跟随目标位于跟随机器人的任何方位,均能实现机器人的跟随,无需额外的基站、标签等定位设施,可以减少整个跟随系统成本。基于ROS系统使开发简单快速,适用范围广,具有良好的可移植性和通用性。_ros系统的无人小车自动跟随方案研究

几十款游戏的简单分析_游戏分析-程序员宅基地

文章浏览阅读1.3k次。笔者曾在多个游戏平台上玩过众多游戏,包括fc红白游戏机游戏、网页游戏、单机游戏、客户端游戏、手游等。在游戏过程中,笔者常常从多个角度对游戏进行分析,包括游戏的优缺点、改进方法、数值设计、音效、画面等方面。本篇文章简要但关键地记录了笔者在游戏体验和策略分析方面的一些心得体会。综合以上所述,一款成功的游戏需要满足一些基本要素。首先,它必须是新颖的、有趣的、易于上手的,同时游戏数值、画面、音效等方面也要在合理区间。_游戏分析

circular waveguide_wr137 circular waveguide datasheet-程序员宅基地

文章浏览阅读1.3k次。 Figure 1 Bessel function of first kindFigure 2 Derivative of Bessel function of first kindFigure 3 E field of TE11 modeFigure 4 H field of TE11 modeFigure 5 E field w.r.t. time_wr137 circular waveguide datasheet

STM32之NB-IoT学习(一)——NB-IoT介绍_物联网lot学习(2)-程序员宅基地

文章浏览阅读892次,点赞8次,收藏13次。你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!!(备注:嵌入式)你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!_nb-iot

Camera Calibration and 3D Reconstruction-程序员宅基地

文章浏览阅读2.6k次。https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.htmlThe functions in this section use a so-called pinhole camera model. In this model, a scene view is formed..._camera calibration and 3d reconstruction

随便推点

C语言最重要的知识点(复习、期末考)-程序员宅基地

文章浏览阅读1k次,点赞26次,收藏20次。C语言最重要的知识点(复习、期末考)

Windows11系统开机跳过联网全过程(详解)_跳过联网进入win11 需要设置密码-程序员宅基地

文章浏览阅读1.5k次,点赞3次,收藏7次。Windows11系统开机跳过联网全过程(详解)_跳过联网进入win11 需要设置密码

SpringBoot 整合RabbitMQ错误记录-程序员宅基地

文章浏览阅读336次。1. 控制台报错:Exception in thread "main" java.io.IOException…… Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(r..._current message type not match with topic accept message types

【线性代数笔记】正交矩阵的性质-程序员宅基地

文章浏览阅读2w次,点赞16次,收藏81次。定义 设nnn阶矩阵AAA满足AAT=ATA=IAA^T=A^TA=IAAT=ATA=I,则称AAA为正交矩阵。定理1 设AAA,BBB是同阶正交矩阵,则:(1) det⁡(A)=±1\det(A)=\pm1det(A)=±1;(2) AT,A−1,A∗A^T,A^{-1},A^*AT,A−1,A∗均为正交矩阵;(3) ABABAB为正交矩阵。定理2 实方阵AAA为正交矩阵⟺\Longleftrightarrow⟺AAA的列/行向量组为标准正交向量组。证明提要:将AAA按列分块,考察ATA=I_正交矩阵的性质

AndroidStudio4.0 Layout界面预览设置等_android studio layout预览设置-程序员宅基地

文章浏览阅读3.9k次,点赞8次,收藏7次。这里写自定义目录标题AndroidStudio Layout和Drawable默认打开代码加预览AndroidStudio Layout和Drawable默认打开代码加预览AndroidStudio 3.6之后打开Layout和Drawable默认显示的只有预览页面,而不是代码加预览;选择File | Settings | Editor | Layout Editor可以修改默认显示代码加预览;直接上图:将右边Other Resources改成Split既可以实现代码加预览。效果如下:._android studio layout预览设置

<转载>Android 对sdcard操作-程序员宅基地

文章浏览阅读347次。其实就是普通的文件操作,不过还是有些地方需要注意。比如: 1.加入sdcard操作权限; 2.确认sdcard的存在; 3.不能直接在非sdcard的根目录创建文件,而是需要先创建目录,再创建文件; 在AndroidManifest.xml添加sdcard操作权限 复制代码