1、多态是C++面向对象三大特征之一,多态分类:
静态多态:函数重载和运算符重载都属于静态多态, 复用函数名动态多态:派生类和虚函数实现运行时多态2、区别:
静态多态函数地址早绑定,编译阶段确定函数地址动态多态的函数地址晚绑定,运行阶段确定函数地址3、动态多态满足条件
有继承关系子类重写父类的虚函数(重写:返回值、函数名、形参列表 都完全一样)4、动态多态的使用
父类的指针或者引用 指向子类对象
void doSpeak(Animal &animal) //Animal &animal = cat;{ animal.speak();}//Animal时父类void test(){ Cat cat; doSpeak(cat); //输出猫的speak Dog dog; doSpeak(dog); //输出狗的speak;}