多态的四种实现
来源:互联网 发布:闵行php开发培训学校 编辑:程序博客网 时间:2024/06/14 16:20
多态分为两种:通用的多态和特定的多态。两者的区别是前者对工作的类型不加限制,允许对不同类型的值执行相同的代码;后者只对有限数量的类型有效,而且对不同类型的值可能要执行不同的代码。
通用的多态又分为参数多态(parametric)和包含多态(inclusion);特定的多态分为过载多态(overloading)和强制多态(coercion)。
强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。程序设计语言中基本类型的大多数操作符,在发生不同类型的数据进行混合运算时,编译程序一般都会进行强制多态。程序员也可以显示地进行强制多态的操作(Casting)。举个例子,比如,int+double,编译系统一般会把int转换为double,然后执行double+double运算,这个int-》double的转换,就实现了强制多态,即可是隐式的,也可显式转换。
过载(overloading)多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。程序设计语言中基本类型的大多数操作符都是过载多态的。通俗的讲法,就是c++中的函数重载。在此处中“overload”译为“过载”,其实就是所谓的“重载”,也许“overload”就应翻译为“过载,重载”吧,那“override”就只能是“覆盖”了。
参数多态:采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型。例如,模板类。
包含多态:同样的操作可用于一个类型及其子类型。(注意是子类型,不是子类。)包含多态一般需要进行运行时的类型检查。例如,虚函数“virtual---override”机制。
通用的多态又分为参数多态(parametric)和包含多态(inclusion);特定的多态分为过载多态(overloading)和强制多态(coercion)。
强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。程序设计语言中基本类型的大多数操作符,在发生不同类型的数据进行混合运算时,编译程序一般都会进行强制多态。程序员也可以显示地进行强制多态的操作(Casting)。举个例子,比如,int+double,编译系统一般会把int转换为double,然后执行double+double运算,这个int-》double的转换,就实现了强制多态,即可是隐式的,也可显式转换。
过载(overloading)多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。程序设计语言中基本类型的大多数操作符都是过载多态的。通俗的讲法,就是c++中的函数重载。在此处中“overload”译为“过载”,其实就是所谓的“重载”,也许“overload”就应翻译为“过载,重载”吧,那“override”就只能是“覆盖”了。
参数多态:采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型。例如,模板类。
包含多态:同样的操作可用于一个类型及其子类型。(注意是子类型,不是子类。)包含多态一般需要进行运行时的类型检查。例如,虚函数“virtual---override”机制。
阅读全文
0 0
- 多态的四种实现
- 四种函数的实现
- C++对象布局及多态实现的探索(四)
- Android点击事件的四种实现 + 多击事件
- 实现微信布局的四种方式(四)
- LVS的四种模式的实现
- 实现ORM的四种方案
- 四种实现下载功能的方法
- 代理的四种实现方式
- Spring实现AOP的四种方式
- SWAP方法的四种实现方式
- C++实现四种三角形的打印
- 四种NAT的iptables实现
- c++实现的四种排序算法
- 内部类的四种实现方式
- spring实现注入的四种方式
- Spring实现AOP的四种方式
- Ui 实现多线程的四种方式
- 1043. 输出PATest(20)
- 在OpenCV某一个算子中考察某该算子的一个参数对图像处理的影响,通过循环从而选择最佳参数的方法
- 函数fseek() 用法
- 《数字图像处理》第三版笔记(七)快速傅立叶变换
- git pull 错误
- 多态的四种实现
- XSS漏洞自动化攻击工具XSSer
- Hadoop各个版本的下载地址
- 百度地图lbs云自有数据检索
- html 和 body 的区别
- bitmap 位图算法
- css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
- 数据结构之连通集(Java)
- 神舟战神Z7M笔记本bios设置u盘启动教程