多态的含义

目录

1、多态的定义

2、多态存在的三个必要条件

3、多态在Java中的表现形式


1、多态的定义

Java 多态(Polymorphism)是面向对象编程的一项核心概念,它允许对象以多种形式出现。

多态其实和继承息息相关,多态通常是指声明一个父类可以指向很多个不同的子类对象,而且每个子类表现出的形式不一样。例如:有以下这种继承关系:

// 声明父类类型 new子类对象,这个其实很好理解就像你声明Person类型但是new的是Student对象一样(Person person = new Student()),意思就是你new的这个学生就是个人。

java 复制代码
Cal cal = new Add(3,2);
cal = new Sub(3,2);
cal = new Mul(3,2);
cal = new Div(3,2);

如上面的代码,声明一个父类类型可以new很多个不同的子类对象,它们也都可以调用父类中的getResult()方法,这个方法可以在子类中重写,这样就可以通过调用这一个方法来实现多个功能了,这就是多态。

2、多态存在的三个必要条件

  1. 继承
  2. 重写
  3. 父类引用指向子类对象 Cal cal = new Add();

3、多态在Java中的表现形式

多态性在Java中有两个主要的表现形式:

  1. 编译时多态(也称为静态多态)
  2. 运行时多态(也称为动态多态)

编译时多态是通过方法重载(Method Overloading)实现的。这意味着在同一个类中可以定义多个方法,这些方法具有相同的名字但参数列表不同。编译器在编译时根据参数列表来决定调用哪个具体的方法。

编译时多态就是上面所说的多态。

借鉴的老师找的图,这个图可以很好的解释多态,父类Shape里面定义了一个draw()方法,然后Circle、Triangle、Square这三个类都继承了Shape类并重写了它里面的方法,最后通过调用这个方法来实现了不同的效果,这就是多态。

相关推荐
Elias不吃糖1 小时前
Java Lambda 表达式
java·开发语言·学习
梨子串桃子_1 小时前
推荐系统学习笔记 | PyTorch学习笔记
pytorch·笔记·python·学习·算法
情缘晓梦.2 小时前
C语言指针进阶
java·开发语言·算法
Bruce_Liuxiaowei2 小时前
基于HTA的Meterpreter反向Shell攻击实验
网络·windows·经验分享·网络安全·渗透测试
老陈头聊SEO2 小时前
生成引擎优化(GEO)助力内容创作新风向与用户互动提升
其他·搜索引擎·seo优化
南知意-3 小时前
IDEA 2025.3 版本安装指南(完整图文教程)
java·intellij-idea·开发工具·idea安装
laplace01234 小时前
# 第六章 agent框架开发实践 - 学习笔记
人工智能·笔记·学习·语言模型·agent
码农水水4 小时前
蚂蚁Java面试被问:混沌工程在分布式系统中的应用
java·linux·开发语言·面试·职场和发展·php
海边的Kurisu4 小时前
苍穹外卖日记 | Day4 套餐模块
java·苍穹外卖
毕设源码-邱学长4 小时前
【开题答辩全过程】以 走失儿童寻找平台为例,包含答辩的问题和答案
java