多态
多态(polymorphism),指为不同数据类型的实体提供统一的接口。
多态类型(polymorphic type)可以将自身支持的操作套用到其他类型的值上。
当程序运行时,相同的消息可能会送给多个不同类别的对象,而系统可以根据对象所属的类别,引发对应类别的方法,而有不同的行为。简单来说,多态就是指相同的消息给予不同的对象会引发不同的动作。
多态可以分为变量多态和函数多态。变量多态指:基类型的变量可以被赋值基类型对象,也可以被赋值派生类型的对象。函数多态指:相同的函数调用界面(函数名与实参表),传递给一个对象变量,可以有不同的行为,这视该对象变量所指的对象类型而定。因此变量多态是函数多态的基础。
多态还可以分为:
- 动态多态:在运行期生效
- 静态多态:将不同的特殊行为和单个泛化记号向关联,由于这种关联处理处于编译期而非运行期,因此被称为“静态”。可以用来实现类型安全、运行高效的同质对象集合操作。(例如c++的STL)
- 非参数化多态(特设多态)
- 函数重载
- 运算符重载
- 带变量的宏多态
- 参数化多态:将类型作为参数的多态,在面向对象的程序设计中,被称作泛型编程。
- 非参数化多态(特设多态)
在C++中谈及多态时,默认就是指动态多态,而静态多态则是指基于模板的多态。

浙公网安备 33010602011771号