当前位置:网站首页>什么是多态。
什么是多态。
2022-08-04 05:35:00 【郝老三】
引言~我们总提到面向对象的三大特征、封装,继承,多态。今天我们就好好聊一聊多态。
一:什么是多态。
多态是建立在继承的基础上的,可以说没有继承就没有多态。多态指的就是。首先子类继承父类的方法、然后子类重写父类的方法、最后使用的时候,用父类的对象指向子类的引用,同样的一个父类对象会出现多种状态。
这样说可能有些枯燥,让我们结合代码来看一看吧~
二:解释多态的例子。
这个例子是,大话设计模式中简单工厂的例子,我先将类图、代码贴到下方,然后通过对这个例子的论述、深刻的理解多态。
2.1 类图
一共有六个类。分别是简单工厂类,运算类和它的四个子类
2.2 运算类
2.3 加减乘除类
2.4简单工厂类
这里,±*/四个case分支下,每个都是父类型的对象,指向的子类型的引用。通过这种方式,实现了多态。
命名同样都是这个父类型的对象oper,却可以有多种多样不同的操作。
2.5 客户端代码
三:总结
多态的核心就是,父类型对象指向不同的子类引用,通过这种方式,可以减少很多的if判断,让我们的代码更加容易维护(通过添加子类对象的方式)。让我们写出的程序更加符合设计原则。
四:代码对应。
4.1 多态是指为不同数据类型的实体提供统一的接口。
在这里。不同数据类型的实体,指的就是这些子类。OperationAdd,OperationSub,OperationMul,OperationDiv,统一的接口指的就是统一的父类对象oper。
4.3 父类的引用指向子类的对象。
父类的引用指向子类的对象指的是声明的一个父类型引用,指向对应子类对象。
边栏推荐
- 无监督特征对齐的迁移学习理论框架
- 缓动动画,有关窗口的一些常见操作,BOM操作
- A semi-supervised Laplace skyhawk optimization depth nuclear extreme learning machine for classification
- Database: Organize Four Practical SQL Server Scripting Functions
- 数据库知识:SQLServer创建非sa用户笔记
- Scheduler (Long-term,Short-term, Medium-term Scheduler) & Dispatcher
- Multi-threaded sequential output
- Microsoft computer butler 2.0 beta experience
- 格拉姆角场GAF将时序数据转换为图像并应用于故障诊断
- VMD combined with ISSA to optimize LSSVM power prediction
猜你喜欢
Operating System Random
数据库文档生成工具V1.0
网络技巧:教你给路由器装上电池,断电照样可以上网!
mysql:列类型之float、double
怎样才能转行成功?
A priori box (Anchor) in target detection
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
数据库知识:SQLServer创建非sa用户笔记
以太网 ARP
Online public account article content to audio file practical gadget
随机推荐
电脑软件:推荐一款磁盘空间分析工具——WizTree
异步编程之promise,任务队列,事件循环
VS 2017编译 QT no such slot || 找不到*** 问题
A semi-supervised Laplace skyhawk optimization depth nuclear extreme learning machine for classification
Online public account article content to audio file practical gadget
第九篇 ApplicationContext初始化
网络安全工程师们改不掉的“老毛病”
普通用户 远程桌面连接 服务器 Remote Desktop Service
Visualization and Animation Technology (3D Visualization)
字符串的一些方法
IP 核之 MMCM/PLL 实验
QT 出现多冲定义问题
Stream API
目标检测中的IoU、GIoU、DIoU与CIoU
升级到 MediaPlayer 11 时跳过验证副本的方法
JUC锁框架——基于AQS的实现,从ReentrantLock认识独占和共享
Nacos 原理
Faster - RCNN principle and repetition code
基于爬行动物搜索RSA优化LSTM的时间序列预测
用chrome dev tools 强制js注入