多态的分类

2024-06-24 08:48
文章标签 多态 分类

本文主要是介绍多态的分类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

多态分为两种:通用的多态特定的多态。两者的区别是前者对工作的类型不加限制,允许对不同类型的值执行相同的代码;后者只对有限数量的类型有效,而且对不同类型的值可能要执行不同的代码。

1,通用的多态又分为参数多态(parametric)和包含多态(inclusion);

(1)参数多态采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型

例如:泛型

 

(2)包含多态:同样的操作可用于一个类型及其子类型。(注意是子类型,不是子类。)包含多态一般需要进行运行时的类型检查。

 

目前理解,也就是"重写"

 

2,特定的多态分为过载多态(overloading)和强制多态(coercion)。

(1)过载(overloading)多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。程序设计语言中基本类型的大多数操作符都是过载多态的。

目前理解,也就是重载。

 

(2)强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。程序设计语言中基本类型的大多数操作符,在发生不同类型的数据进行混合运算时,编译程序一般都会进行强制多态。程序员也可以显示地进行强制多态的操作(Casting)。

例如:int+double,编译系统一般会把int转换为double,然后执行double+double运算,这个int-》double的转换,就实现了强制多态,即可是隐式的,也可显式转换;

 

例如:父类引用指向子类对象Parent p=new Child();

 

 

总结:

不论多态分多少类,多态的作用是不少的

多态的作用:

1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承

2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性可维护性

 

这篇关于多态的分类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1089674

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

雨量传感器的分类和选型建议

物理原理分类 机械降雨量计(雨量桶):最早使用的降雨量传感器,通过漏斗收集雨水并记录。主要用于长期降雨统计,故障率较低。电容式降雨量传感器:基于两个电极之间的电容变化来计算降雨量。当降雨时,水滴堵住电极空间,改变电容值,从而计算降雨量。超声波式降雨量传感器:利用超声波的反射来计算降雨量。适用于大降雨量的场合。激光雷达式降雨量传感器:利用激光技术测量雨滴的速度、大小和形状等参数,并计算降雨量。主

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍: 一、气象站的种类 根据用途和安装环境分类: 农业气象站:专为农业生产服务,监测土壤温度、湿度等参数,为农业生产提供科学依据。交通气象站:用于公路、铁路、机场等交通场所的气象监测,提供实时气象数据以支持交通运营和调度。林业气象站:监测林区风速、湿度、温度等气象要素,为林区保护和

【论文精读】分类扩散模型:重振密度比估计(Revitalizing Density Ratio Estimation)

文章目录 一、文章概览(一)问题的提出(二)文章工作 二、理论背景(一)密度比估计DRE(二)去噪扩散模型 三、方法(一)推导分类和去噪之间的关系(二)组合训练方法(三)一步精确的似然计算 四、实验(一)使用两种损失对于实现最佳分类器的重要性(二)去噪结果、图像质量和负对数似然 论文:Classification Diffusion Models: Revitalizing

第T2周:彩色图片分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 👉 要求: 学习如何编写一个完整的深度学习程序了解分类彩色图片会灰度图片有什么区别测试集accuracy到达72% 🦾我的环境: 语言环境:Python3.8编译器:Jupyter Lab深度学习环境: TensorFlow2 一、 前期准备 1.1. 设置GPU 如果设备上支持GPU就

细粒度图像分类论文阅读笔记

细粒度图像分类论文阅读笔记 摘要Abstract1. 用于细粒度图像分类的聚合注意力模块1.1 文献摘要1.2 研究背景1.3 本文创新点1.4 计算机视觉中的注意力机制1.5 模型方法1.5.1 聚合注意力模块1.5.2 通道注意力模块通道注意力代码实现 1.5.3 空间注意力模块空间注意力代码实现 1.5.4 CBAM注意力机制CBAM注意力代码实现 1.5.5 本文模型整体架构 1.6

C++面向对象三大特性--多态

C++面向对象三大特性–多态 文章目录 C++面向对象三大特性--多态1.虚函数(Virtual Function)2.纯虚函数(Pure Virtual Function)和抽象类(Abstract Class)3.重写(Override)4.动态绑定(Dynamic Binding)或迟绑定(Late Binding)5.虚析构函数和纯虚析构5.1虚析构函数5.2纯虚析构函数5.3总结

Flask中制作博客首页的分类功能(二)

在Flask中制作博客首页的分类功能(一)的基础上,继续下面的教程。 发布文章的时候会为文章添加一些标签(tag),这些tag需要和数据库中Category表的tag进行比较,如果已经存在该tag,那么需要将新发表文章的tag与已存在的表格进行对应,如果不存在则要新建一个category表。 首先在python shell中执行操作。 from sql_test import db, Pos

机器学习算法(二):1 逻辑回归的从零实现(普通实现+多项式特征实现非线性分类+正则化实现三个版本)

文章目录 前言一、普通实现1 数据集准备2 逻辑回归模型3 损失函数4 计算损失函数的梯度5 梯度下降算法6 训练模型 二、多项式特征实现非线性分类1 数据准备与多项式特征构造2 逻辑回归模型 三、逻辑回归 --- 正则化实现1 数据准备2 逻辑回归模型3 正则化损失函数4 计算损失函数的梯度5 梯度下降6 训练模型 总结 前言 今天我们开始介绍逻辑回归的从零开始实现代码了,

选择器的基本分类和扩展选择器

div:行级标签  2个div之间会换行 span:块级标签 p:行级标签:2个p之间会换行,且有个空行