什么是Java多态?如何实现Java多态?[通俗易懂]

什么是Java多态?如何实现Java多态?[通俗易懂]java多态这个概念在同学们深入学习java的时候就会被提出,很多同学并不知道是什么意思,如何实现。今天小千就来给大家介绍一下什么是java多态和java如何实现多态。什么是多态?指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynamicbinding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。多态的作用:消除类型之间的耦合关系。现实中,关于多态的例子不胜

大家好,又见面了,我是你们的朋友全栈君。

java多态这个概念在同学们深入学习java的时候就会被提出,很多同学并不知道是什么意思,如何实现。今天小千就来给大家介绍一下什么是java多态和java如何实现多态。
在这里插入图片描述

什么是多态?

指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。

多态的作用:消除类型之间的耦合关系。

现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。

多态产生的必要条件

一、要有继承;二、要有重写;三、父类引用指向子类对象。

实现java多态的方式

一般可通过重载、接口、继承这三种方式实现。

多态的好处

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

2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。

3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3 所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,完善或者覆盖这两个接口方法。

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

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

以上就是java多态的介绍了,希望对大家有所帮助!

本文来自千锋教育,转载请注明出处。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156862.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Delphi xe5 StyleBook的用法(待续)

    Delphi xe5 StyleBook的用法(待续)首先要在FORM里拖进来一个StyleBook1,然后在Form里设置属性,记住一定要在单击form,在OBjectInspector里设置StyleBook [StyleBook1].下一个属性StyleName[ ] 好像是多余的,我多次都把StyleName[StyleBook1],但是没有效果。在其他控件下设置StyleLookup就可以了,单击选择。styleName就

    2022年7月18日
    11
  • 第一章,安装Vmware和Ubuntu「建议收藏」

    第一章,安装Vmware和Ubuntu「建议收藏」第一章,安装Vmware和Ubuntu

    2022年4月23日
    42
  • 485转网口的moxa(虚拟机com口和主机com口)

    影响我们一生百倍差距的四大效应观察者效应:你的世界是什么样是由你的观察决定的.这个效应是在【潜能突破】研习营课堂上发现的,我们有个练习叫三生万物,每个人都会成为一次观察者角色,当大家在成为其他角色时,他们总是发现不了自己的问题,无论我们怎样提醒都没有用,无法改变原有的模式,当他们进入观察者模式,看见其他人的行为所造成的后果时,立刻恍然大悟,主动注意自己的形为,在当下立刻发生改变.刚开始我以为这是个…

    2022年4月17日
    51
  • Ubuntu 16.04安装Java JDK8

    Ubuntu 16.04安装Java JDK8JavaJDK在linux系统有两个版本,一个开源版本Openjdk,还有一个oracle官方版本jdk,oracleJDK既可以通过添加ppa源命令行安装,也可以去官网下载jdk压缩包安装。下面分别记录一下这三种安装方式的步骤。安装openjdk1、更新软件包列表:sudoapt-getupdate2、安装openjdk-8-jdk:sudoapt-getinstall

    2022年7月12日
    13
  • goland2021.10激活码(注册激活)「建议收藏」

    (goland2021.10激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlFDZIAAVGQ5-eyJsaWNlbnNlSW…

    2022年3月28日
    99
  • Java Integer类型比较问题

    Java Integer类型比较问题JavaInteger类型比较问题【强制】所有整型包装类对象之间值的比较,全部使用equals方法比较。说明:对于Integervar=?在-128至127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。—-阿里巴巴Java开发手册抱着探索的精神我们来看

    2022年7月16日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号