一、多态的基本概念

  1. 静态多态:函数重载和运算符重载属于静态多态,复用函数名
  2. 动态多态:派生类和虚函数实现运行时多态

区别:

  • 静态多态的函数地址早绑定 - 编译阶段确定函数地址
  • 动态多态的函数地址晚绑定 - 运行阶段确定函数地址

动态多态的满足条件:

  • 有继承关系
  • 子类重写父类的虚函数(返回值,参数,函数名等完全一致叫重写

动态多态的调用:父类的指针或引用指向子类对象,根据传入的对象不同,选择不同的对象

多态(1)_父类

多态(1)_多态_02

当一个成员函数被声明为虚函数后,其派生类中的重写的函数都会自动成为虚函数,因此,子类中重写虚函数时,可以加关键字virtual或者不加