一、多态的基本概念
- 静态多态:函数重载和运算符重载属于静态多态,复用函数名
- 动态多态:派生类和虚函数实现运行时多态
区别:
- 静态多态的函数地址早绑定 - 编译阶段确定函数地址
- 动态多态的函数地址晚绑定 - 运行阶段确定函数地址
动态多态的满足条件:
- 有继承关系
- 子类重写父类的虚函数(返回值,参数,函数名等完全一致叫重写)
动态多态的调用:父类的指针或引用指向子类对象,根据传入的对象不同,选择不同的对象
当一个成员函数被声明为虚函数后,其派生类中的重写的函数都会自动成为虚函数,因此,子类中重写虚函数时,可以加关键字virtual或者不加