当前位置:网站首页>什么是多态。
什么是多态。
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 父类的引用指向子类的对象。
父类的引用指向子类的对象指的是
声明的一个父类型引用,指向对应子类对象。
边栏推荐
- Microsoft Store 微软应用商店无法连接网络,错误代码:0x80131500
- Flask request 返回网页中 checkbox 是否选中
- 2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
- DenseNet详解及Keras复现代码
- golang 坐标格式 转换 GCJ02ToWGS84
- 为什么不使用VS管理QT项目
- 关于网络安全行业你知道多少?
- 对渗透测试工程师来说,学历重要嘛?
- Faster - RCNN principle and repetition code
- JUC锁框架——CountDownLatch、CyclicBarrier和Semaphore
猜你喜欢
随机推荐
在线公众号文章内容转音频文件实用小工具
golang rtsp拉流测试
mysql:列类型之float、double
第九篇 ApplicationContext初始化
子空间结构保持的多层极限学习机自编码器(ML-SELM-AE)
CMDB 腾讯云部分实现
Logical Address & Physical Address
Database document generation tool V1.0
Database: Organize Four Practical SQL Server Scripting Functions
学好网络安全看这篇文章让你少走弯路
水平垂直居中的12种方法,任意插入节点的方法,事件的绑定的三种方法和解绑的方法,事件对象,盒子模型
Microsoft Store 微软应用商店无法连接网络,错误代码:0x80131500
Operating System Random
为什么不使用VS管理QT项目
Uos统信系统 本地APT源配置
av_read_frame 阻塞,基于回调的解决办法
基于时序模式注意力机制(TPA)的长短时记忆(LSTM)网络TPA-LSTM的多变量输入风电功率预测
如何在Excel 里倒序排列表格数据 || csv表格倒序排列数据
Detailed explanation of DenseNet and Keras reproduction code
Implementation of ICEEMDAN Decomposition Code in MATLAB









