Java中的多态详解

一、多态的概念

多态分为类的多态和方法的多态,类的多态就是一个类型可以有不同的表现形态,什么样的类型才会具备多态呢?只有被多个子类继承或者实现的父类才具备多态的特征,因为在运行期间可以根据具体的子类表现出不同的状态,比如说一个父类Person有Student、Worker、 Teacher、 Farmer 四个子类,在运行的时候如果实例化的子类是Student则此时Person表现是学生的行为、如果实例化的子类是Worker则此时Person表现是工人的行为,这就是父类表现出来的多态,类的多态的表现就是向上转型和向下转型。

方法的多态就是一个方法名称却有不同的实现,其实就是方法的重载,在调用方法的时候具体调用哪一-个是在运行期根据传递的实际参数的类型来确定调用哪一个方法,也就是同一个方法名称可以有不同的表现形式,这就是方法的多态。方法多态的表现就是方法的重载。

二:类多态的好处

思考一个需求:有四个类Student、Worker、 Teacher、 Farmar, 要求在一个 类中定义方法来将以上的类作为方法的参数接受。现在能想到可以使用方法的重载接受。

DEMO:方法的重载解决需求

此时可以使用重载方法实现需求,但是存在很大的弊端,假如有一万个类型需要接受那么需要在Aplay中重载方法一万次,这样的代码应变性不高,耦合度高,依赖性强,此时我们可以使用多态的特征解决(向上转型),可以将接受参数的方法的参数类型定义为所有类的父类。

DEMO:使用多态实现

此时Aplay类中的getInfo方法就不需要重载了,这就是多态的好处的直接体现

有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

(0)

相关推荐

  • java的重载与重写

    原文链接http://zhhll.icu/2020/11/11/java%E5%9F%BA%E7%A1%80/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/%E9%87%8 ...

  • 讲真,这三道Java入门级面试题,你也不一定能搞定

    想更好的应对面试,还是需要不断学习不断总结,下面我们来分析三道面试题. 涨薪必备的面试小抄 下面是一道入门级面试题,这道题基本上都是问初级的小伙伴比较多,但如果你是中级,或者高级.我觉得未必都能回答上 ...

  • Java定义

    多态的定义: 多态分为编译时多态和运行时多态. 编译时多态:方法的重载 运行时多态:定义的对象引用所指向的具体类型在运行期间才能确定 运行时多态的三个条件:继承.重写.向上转型 运行时多态就是子类继承 ...

  • 100个你应该知道的java基础知识

    100个你应该知道的java基础知识

  • (2) Java SQL框架(java.sql.*)中常用接口详解

    Driver接口:定义了一个驱动程序接口,每一个数据库的JDBC driver都应该实现这个接口,用于访问对应的数据库.比如MySQL的driver为com.mysql.jdbc.Driver.Jav ...

  • 从零开始学Java(九)详解Java中的方法

    方法 1.什么是方法,有什么用? (可以先看一下一个程序如果没有方法,会出现什么问题?) 方法(英语单词:method)是可以完成某个特定功能的并且可以被重复利用的代码片段. 方法的出现,让代码具有了 ...

  • 八字中的七杀详解

    七杀指男女命里的偏官无制,简称为"杀". 杀为刀,通常与羊刃一起并列为恶神,人命里逢之见之,为凶. 杀,当遇到环境好时,杀通常指一个人的威风八面,春风得意:为凶时,性格暴烈,恶贯满 ...

  • C/C++ 中 volatile 关键字详解 | 菜鸟教程

    C/C++ 中 volatile 关键字详解 | 菜鸟教程

  • 重装系统必须知道的UEFI/BIOS中英图文详解

    不同的电脑其BIOS设置界面也不相同,不过需要设置的选项是基本一致的,只是选项位置会有变化.除了知道怎么操作,最好能知道为什么这么做! 首先,按电脑电源按钮(或重启),当系统关闭电脑进入重启过程时反复 ...

  • 中医典钟详解

    钟面简述(从内到外):太极图:核心圈为太极图,这个是普及性的常识,不再赘述.河图:第二圈由黑白点符号组成的是河图.相传,上古伏羲氏时,洛阳东北孟津县境内的黄河中浮出龙马,背负"河图" ...

  • 在VirtualBox中安装CentOS7详解(Mac版)

    在VirtualBox中安装CentOS7详解(Mac版)

  • Java并发之AQS详解

    一.概述 谈到并发,不得不谈ReentrantLock:而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQ ...

  • 偏印的深度解析 八字十神中偏印详解

    偏印,有的书上也叫做枭神,但如若把所有的偏印都称之为枭神,这是错误的观点,称之为枭神的偏印是八字中有食神出现的才称之为枭(又名伤食.退神.吞啖杀),食神逢克才称之为枭,如八字,丁巳.辛亥.己卯.丁卯, ...