C++多态性
多态性含义
同一个函数可以有不同的语义。相同的消息被不同对象接收时导致完全不同的行为。
面向对象语言的多态性
- 1.重载多态,
- 2.强制多态,
- 3.包含多态
- 4.参数多态。
重载多态和强制多态又称为专用多态。
包含多态和参数多态又称通用多态。
重载多态
重载多态是同一个名字多个实现,函数重载属于此类
强制多态
强制多态是通过语义操作把一个类型加以变换,以符合一个函数或操作的要求。强制类型转换属于此种类型。 例如,把整形转换成浮点型。
包含多态
包含多态是解决类族中定义于不同类中同名成员函数的多态行为,主要通过虚函数实现的。
参数多态
参数多态是参数可以模板化, 其中,类模板实例化的各个类具有相同的操作,函数模板实例化的各个函数具有相同的操作。 像函数模板和类模板。
从实现的角度可以分为两类
- 编译时的多态
- 运行时的多态。
编译时的多态是在编译过程中确定同名操作的具体操作对象。也称静态联编
运行时的多态是在程序运行过程中动态地确定具体操作的对象。这个过程也称动态联编。
用面向对象的术语来说,就是把一个消息和一个对象方法相结合的一个过程。