c++多态分为动态多态和静态多态,静态多态就是函数承重载,运算符重载。动态多态就是派生类和虚函数之间的关系了。
静态多态地制早绑定。
动态多态就是地址晚绑定,发生在程序运行阶段。
首先动态多态发生的条件:有继承关系、子类中重写了父类中的虚函数
重载与重写:重载要求函数名相同,而函数的参数不同。 重写要求函数的名、返回值类型、参数值都要完全相同。
//动态多态
class Animal
{
public:
virtual void speak()
{
cout << "动物说话" << endl;
}
};
class Cat:public Animal
{
public:
void speak()
{
cout << "猫在说话" << endl