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多态的介绍了,希望对大家有所帮助!

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

什么是Java多态?如何实现Java多态?相关推荐

  1. Java基础:继承、多态、抽象、接口

    第一讲    继承 一.继承概述 1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 2.通过extends关键字可以实现类与类的 ...

  2. 到底什么是面向对象,面试中怎么回答。面向过程和面向对象的区别是什么。java跨平台特性以及java和C++的区别。面向对象的三大特性——封装、继承和多态。面向对象的高拓展性以及低耦合度怎么体现?

    Java语言具有的特点:面向对象.跨平台.多线程以及网络编程 1. 和C++的区别 1.1 Java隐蔽了C++的指针,避免指针直接操作,程序更加安全. 1.2 Java类继承只能单继承,避免了C++ ...

  3. java提高篇四_(转)java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  4. JAVA入门级教学之(多态)

    JAVA入门级教学之(多态) 怎么理解多态:你本身就该喊你爹叫爹,你让你爹叫你爹就是强制认做爹 多态的使用: A  a = new D(); D类继承A类,父类型引用指向子类型对象 * 关于java语 ...

  5. C 多态和java多态_C与java的多态机制与区别

    既然多态是面向对象的三大本质特征之一(其它两个是数据抽象和继承),那么 C++为什么不将方法调用的默认方式设置为动态绑定,而要通过关键字virtual进行标记呢?Bruce Eckel在<Thi ...

  6. java多态的实现_Java多态的实现机制是什么,写得非常好!

    作者:crane_practice www.cnblogs.com/crane-practice/p/3671074.html 2019-06-13 08:46:00 Java多态的实现机制是父类或接 ...

  7. java中多态案例工厂类,Java中构造器内部的多态方法的行为实例分析

    本文实例讲述了Java中构造器内部的多态方法的行为操作.分享给大家供大家参考,具体如下: 这篇文章主要讨论的是,若在一个构造器中调用正在构造的对象的某个动态绑定的方法时会出现的情况.在此之前,我们需要 ...

  8. JAVA编程思想——读书笔记 多态

    文章目录 多态性(Polymorphism) 1.向上转型 ·为什么要向上转型 2.深入理解(绑定) 方法调用的绑定(Binding) 如何产生正确的行为 3.过载与覆盖 4.抽象类和方法 5.接口( ...

  9. java虚拟函数_java实现多态中的虚函数相关概念

    本文转载自参考博客 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑 ...

  10. Java学习笔记类对象多态继承(下)

    面向对象(下) 1.类的继承 一.什么是继承,有什么用? 继承:在现实世界当中也是存在的,例如:父亲很有钱,几子不用努力也很有钱 继承的作用: 基本作用:子类继承父类,代码可以得到复用.(这个不是重要 ...

最新文章

  1. Java面试笔试题大汇总一(最全+详细答案)
  2. 锤子剪刀布 (20)
  3. 【洛谷P1108】低价购买【dp练习】
  4. feign调用多个服务_spring cloud各个微服务之间如何相互调用(Feign、Feign带token访问服务接口)...
  5. 人工智能计算机的相关信息,关于人工智能,计算机领域的尖端(三)
  6. php7 mysql json 小程序_微信小程序JSON数组递交PHP服务端解析处理
  7. Vue购物商城项目(二) 数据请求使用
  8. 1117 Eddington Number
  9. The labor day's schedule and the rate of process
  10. delphi 组件安装教程详解
  11. JAVA毕业设计婚纱摄影网设计计算机源码+lw文档+系统+调试部署+数据库
  12. 深入探讨Android异步精髓Handler
  13. 排序算法之冒泡排序(图解)
  14. 微软云+Servlet实现图片上传接口
  15. 国产手机后台弹出界面检测方法
  16. 微软modern.IE:网站兼容性测试利器
  17. PHP和Socket简介
  18. MySQL是如何执行一条SQL更新语句
  19. 平均11岁的黑客你怕不怕?“孩子从小就该感受编程的乐趣!!”
  20. 【LTE】LTE基础知识要点(二)信道物理资源定义(RG/RB/RE/REG)

热门文章

  1. 深度强化学习的 18 个关键问题 | PaperDaily #30
  2. python爬取评论_python爬取网易云音乐评论
  3. Error:Kotlin: Module was compiled with an incompatible version of Kotlin
  4. java实现表锁行锁
  5. 多数据源:spring boot+mybatisplus配置
  6. Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案
  7. 《编译原理》实验预习报告——TINY语言的词法分析
  8. Applese 的毒气炸弹
  9. oracle 服务管理,管理 Oracle 内容服务类别
  10. java jpa注解哪个包好,Spring Data JPA 中常用注解详解