当前位置:网站首页>什么是多态。
什么是多态。
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 父类的引用指向子类的对象。
父类的引用指向子类的对象指的是
声明的一个父类型引用,指向对应子类对象。
边栏推荐
- 网络安全行业是蓝景吗?
- What is the connection between GRNN, RBF, PNN, KELM?
- 异步编程之promise,任务队列,事件循环
- Gramm Angle field GAF time-series data into the image and applied to the fault diagnosis
- DropBlock: 卷积层的正则化方法及复现代码
- Faster - RCNN principle and repetition code
- U-Net详解:为什么它适合做医学图像分割?(基于tf-Kersa复现代码)
- POI及EasyExcel
- 数据库技巧:整理SQLServer非常实用的脚本
- 网络安全学习的三大不可取之处
猜你喜欢

Faster RCNN原理及复现代码

数据库文档生成工具V1.0

A priori box (Anchor) in target detection

2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab

Operating System Kernel

数据库技巧:整理SQLServer非常实用的脚本

关于gopher协议的ssrf攻击

Microsoft computer butler 2.0 beta experience

YOLOv3详解:从零开始搭建YOLOv3网络

华硕飞行堡垒系列无线网经常显示“无法连接网络” || 一打开游戏就断网
随机推荐
QT 出现多冲定义问题
Network skills: teach you to install batteries on the router, you can still surf the Internet when the power is cut off!
golang rtsp拉流测试
数据库sql的基础语句
LeetCode刷题
字符串的一些方法
微软电脑管家2.0公测版体验
把DocumentsandSettings迁移到别的盘
基于子空间结构保持的迁移学习方法MLSSM
Uos统信系统 IP地址以及完整主机名配置
golang chan
基于Event Stream操作JSON
RHCE之路----全
Logical Address & Physical Address
Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols
U-Net详解:为什么它适合做医学图像分割?(基于tf-Kersa复现代码)
SegNet——论文笔记
你要悄悄学网络安全,然后惊艳所有人
狗都能看懂的变化检测网络Siam-NestedUNet讲解——解决工业检测的痛点
MATLAB 的ICEEMDAN分解代码实现