Java多态概念与应用

Java多态概念与应用1 1 多态概念多态指的是同一个行为具有多个不同表现形式或形态的能力 是不是感觉很抽象 很难理解 没关系 接下来将用一个小 demo 带你了解多态的概念和优点 提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档文章目录 1 1 多态概念前言一 多态是什么 1 新建 Person 类 2 新建 Student 类 3 输出的结果是什么 4 多态需要满足要求 5 多态的应用二 使用步骤 1 引入库 2 读入数据总结前言多态作为 Java 三大特性之一 其重要性相信也不用我多说吧 今天这篇帖子就将全面为你介绍

多态

多态指的是同一个行为具有多个不同表现形式或形态的能力。是不是感觉很抽象,很难理解。没关系,接下来我将全面带你了解Java多态。


前言

多态作为Java三大特性之一,其重要性相信也不用我多说吧。今天这篇帖子就将全面为你介绍多态的概念和应用


一、多态是什么?

多态是指同一个行为具有多个不同表现形式或形态的能力。是不是感觉很抽象,没事,接下来就让我用一个demo带你了解什么是多态吧。

1. 代码思考

新建person类

public class Person { 
      public String total(){ 
      return "this person class"; } } 

新建Student类

public class Student extends Person { 
      @Override public String total(){ 
      return "这是 student class"; } } 

2.输出的结果是什么?

public class Demo{ 
      public static void main(String[] arg){ 
      Person student = new Student(); System.out.println(student.total()); // 这是 student class } } 

3.多态需要满足要求

将上述多态代码,抽离出特点。我们可以得到多态需要满足条件:

1. 子类继承父类
2. 子类重写父类方法
3. 子类对象指向父类声明(最关键一点)




那有的同学就会疑问了,那我直接使用子类引用不就行了吗,为什么要多此一举。那不妨来看一下接下来这一段代码。

4.多态的应用

public class Demo{ 
      public static void main(String[] arg){ 
      Person person = new Person(); Person student = new Student(); getClassName(person); // 这是 person class getClassName(student); // 这是 student class } public static void getClassName(Person person){ 
      System.out.println(person.total()); } } 

这就是多态的巧妙与应用了,这里我们可以看到,getClassName需要的参数是Person 类型。但当我们传入的是student 对象时,程序依旧运行正确输出了。

在实际开发中,代码和方法的量级很为庞大。如果某一天客户有一个新的需求让你添加一个新的功能,你需要重写一个新类,然后在调用接口处重新加一个方法,用于调用你新写的类中的方法。而多态的出现,让你只需新建子类,重写父类方法,也不需要新增调用接口。而且最主要的是也不用改写前辈的可能随时引爆的代码了(手动狗头)。

因此多态的出现也很大程度的降低了代码冗余性,提高了代码的复用性,也降低了出错的可能性,而且也方便管理。

5 多态中父类声明对象只能调用所声明类中的方法

public class Student extends Person { 
      @Override public String total(){ 
      return "这是 student class"; } public String util(){ 
      return "这是 util 方法"; } } 

二、多态进阶应用

1.问题

某企业A类经理纳税13%,B类高管纳税8%,C类员工享受补贴不纳税。请你设计一个程序计算改企业所有员工需要纳税金额(使用多态)?

你可以先动手实现一下

2.代码实现

新建Employee类,用于定义接口,即父类。

public class Employee { 
      double tax = 0; public Employee(int tax){ 
      this.tax = tax; } public double getTax() { 
      return 0; } } 

分别新建 Management、Senior、Normal 继承 Employee,代表不同类型员工。

public class Management extends Employee { 
      public Management(int tax){ 
      super(tax); } @Override public double getTax() { 
      return tax*0.13; } } 
public class Senior extends Employee { 
      public Senior(int tax) { 
      super(tax); } @Override public double getTax(){ 
      return tax * 0.08; } } 
public class Normal extends Employee{ 
      public Normal(int tax) { 
      super(tax); } @Override public double getTax(){ 
      return 0; } } 

定义接口,计算所有员工的纳税金额总和。

public class Demo{ 
      public static void main(String[] arg){ 
      Employee[] employeeTax = new Employee[]{ 
      new Management(23414), new Senior(1234), new Normal(3478) }; System.out.println(getEmployeeTaxSum(employeeTax)); } public static double getEmployeeTaxSum(Employee[] employee){ 
      double taxNum = 0; for (Employee eTax : employee){ 
      taxNum += eTax.getTax(); } return taxNum; } } 

supper关键字的应用

在多态中,如果子类重写了父类的方法,那么实际会指向的是子类的方法,但是如果你又想执行父类的方法,那么你可以使用super关键字应用父类方法。

总结

以上就是今天要讲的内容,本文全面介绍了Java多态的概念、特性、使用条件以及应用场景。相信仔细阅读这篇文章,你就能搞清Java多态。

如果你觉得这篇帖子不错,可以关注我,我将定期更新Java知识。

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

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

(0)
上一篇 2026年3月17日 下午10:20
下一篇 2026年3月17日 下午10:20


相关推荐

  • pycharm背景图片设置不了_qq主页背景图片

    pycharm背景图片设置不了_qq主页背景图片设置背景需要找到BackgroundImage找到BackgroundImage有

    2022年8月28日
    4
  • 拉链表的实现过程[通俗易懂]

    拉链表的实现过程[通俗易懂]拉链表的优势我就不说了,具体请参考百度百科:拉链表-百度百科推荐一个比较详细的参考文章:拉链表示例主要总结一下实现过程:分析:拉链表就是用来存储变化的数据的,每一份数据都有对应的有效期,我们需要进行的操作就是将变动的数据进行新增,同时将变动对应的前一条数据的有效期进行变更。说明:一般都是今天处理昨天的数据,本文所说的当天为所处理的数据的产生的当天。在这之前需要熟悉一下需要用到的表:表1:订单表(记录原始的数据)表2:增量数据表(记录每日变更的数据)表3:历史拉链表(我们要得到的就是这张表

    2022年10月9日
    3
  • 全网最详细黑苹果安装教程,小白一看就懂!

    全网最详细黑苹果安装教程,小白一看就懂!可以说:这是一套目前最全面的黑苹果安装教程,为了能让每个新手,更好的理解和掌握相关方法,教程按操作流程书写,新手请务必按顺序阅读,以便提高学习效率,高手可以随意观看,或者飘过。由于篇幅长度有限,一篇文章无法全部展现,更多具体内容请点击下方章节阅读。教程目录一、前言1,什么是黑苹果?二、硬件支持1,如何确认电脑是否支持安装黑苹果?三、准备工作1,黑苹果安装必备工具下载2,黑苹果启动U盘制作方法​3,配置EFI引导文件4,硬盘分区的设置方法​四、开始安装1,BIOS设置讲解!2,开

    2022年6月4日
    64
  • GTC2026|英伟达版OpenClaw有望解决“小龙虾”最大难题:安全性

    GTC2026|英伟达版OpenClaw有望解决“小龙虾”最大难题:安全性

    2026年3月17日
    2
  • 全国首个产通用深度推理大模型,星火X1全新升级!

    全国首个产通用深度推理大模型,星火X1全新升级!

    2026年3月14日
    2
  • linux 系统盘做软raid,Linux软RAID配置

    linux 系统盘做软raid,Linux软RAID配置RAID 卡一般分为硬 RAID 卡和软 RAID 卡两种 通过用硬件来实现 RAID 功能的就是硬 RAID 独立的 RAID 卡 主板集成的 RAID 芯片都是硬 RAID 通过软件并使用 CPU 的 RAID 卡是指使用 CPU 来完成 RAID 的常用计算 软件 RAID 占用 CPU 资源较高 绝大部分服务器设备是硬件 RAID 一 Raid 级别 raid0 多个磁盘的容量大小相加 最后的容量就是多个磁盘容量的大小 优点 扩大了磁盘的空间容

    2026年3月19日
    1

发表回复

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

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