5.1 编译时的多态性与运行时的多态性
1、什么时多态性
【定义】
(1)在面向对象方法中,不同对象收到相同的消息时,产生不同的行为(即方法)
(2)在C++程序设计中,多态性是指用一个名字定义不同的函数,函数执行不同但类似的操作,可以实现用同一个函数名调用不同的内容的函数。“一个接口,多种方法”
2、静态联编和动态联编
【静态联编】:
定义:又称前期联编,系统在编译时就决定如何实现某一动作
特点:在程序编译时就知道调用函数的全部信息
优点:调用速度快,效率高
【动态联编】
定义:系统在运行是动态实现某一动作
特点:一直要到程序运行时才知道调用哪个函数
优点:灵活性、问题抽象性、程序易维护性
3、静态多态性与动态多样性
【静态多态性】
定义:静态联编支持的多态性称为编译时多态性,也称静态多样性
实现方式:函数重载和模板
【动态多态性】
定义:动态联编所支持的多态性称为运行时多态性,也称动态多态性
实现方式:虚函数