多态性含义

同一个函数可以有不同的语义。相同的消息被不同对象接收时导致完全不同的行为。

面向对象语言的多态性

  • 1.重载多态,
  • 2.强制多态,
  • 3.包含多态
  • 4.参数多态。

重载多态和强制多态又称为专用多态。

包含多态和参数多态又称通用多态。

重载多态

重载多态是同一个名字多个实现,函数重载属于此类

强制多态

强制多态是通过语义操作把一个类型加以变换,以符合一个函数或操作的要求。强制类型转换属于此种类型。 例如,把整形转换成浮点型。

包含多态

包含多态是解决类族中定义于不同类中同名成员函数的多态行为,主要通过虚函数实现的。

参数多态

参数多态是参数可以模板化, 其中,类模板实例化的各个类具有相同的操作,函数模板实例化的各个函数具有相同的操作。 像函数模板和类模板。

从实现的角度可以分为两类

  • 编译时的多态
  • 运行时的多态。

编译时的多态是在编译过程中确定同名操作的具体操作对象。也称静态联编

运行时的多态是在程序运行过程中动态地确定具体操作的对象。这个过程也称动态联编。

用面向对象的术语来说,就是把一个消息和一个对象方法相结合的一个过程。