多态(Polymorphism)
来源:互联网 发布:数据分析ppt怎么做 编辑:程序博客网 时间:2024/05/17 22:52
C++里多态的概念有点乱,有时间上Wikipedia上搜索了下相关词条,总结如下
Polymorphism(computer science)
在编程语言和类型理论中,Polymorphism(希腊语,意思为many shape)指的是单个接口对应多个类型实体。作为一个多态类型,它的操作(operation)也可以被提供给其他类型的value。存在几种完全不同类型的多态。
1.Ad hoc polymorphism:函数能够依据参数类型指定不同的实现(depending on a limited range of individually specified types and combinations.)。
其实就是函数重载(function overloading)
2.Parametric polymorphism:编码可以不指定任何特定类型,在被实例化作为参数时才去确定类型。在面向对象编程中,被称为generic programming,而在函数式编程中,则被简称为polymorphism。
在C++里就是模板(template)。
3.Subtyping:名字指定公用超类的不同子类的实例。在面向对象编程中,常被简称为polymorphism。
在C++中就是虚函数(virtual function)。
总结一下,广义的多态,分为三种类型,分别是Ad hoc, Parametirc, Subtyping,分别对应C++中的function overloading, Template 和 virtual function。而C++中所谓的多态,对应的就是Subtyping,通过virtual function的方式来实现。
参考链接:
1. https://en.wikipedia.org/wiki/Polymorphism_(computer_science)
2. https://en.wikipedia.org/wiki/Ad_hoc_polymorphism
3. https://en.wikipedia.org/wiki/Parametric_polymorphism
4. https://en.wikipedia.org/wiki/Subtyping
- 多态(Polymorphism)
- 多态(Polymorphism)
- 多态(Polymorphism)
- 多态(Polymorphism)
- 多态(Polymorphism)
- 多态(Polymorphism)
- java笔记-多态(Polymorphism)
- polymorphism多态
- 多态(Polymorphism)
- Polymorphism 多态
- 多态(Polymorphism)
- Polymorphism(多态)
- 多态polymorphism
- 多态(Polymorphism)
- polymorphism多态
- 多态(Polymorphism)
- 多态(Polymorphism)
- 多态(Polymorphism)
- CSS3基础
- Android中线程应用
- java 读写excel文件
- bzoj 3672 [Noi2014]购票 (线段树+凸壳)
- HDU2136 Largest prime factor
- 多态(Polymorphism)
- Java异常处理-----自定义异常
- hibernate学习之路
- 学习flask web开发遇到的一些问题及解决方法
- HDU 5735 Born Slippy
- WOL
- 代码审计的艺术系列—第一篇
- 【读书笔记】摘自Google开源项目风格指南-C++风格指南
- Socket底层实现