一、多态的概念
多态(Polymorphism)是面向对象编程的一个重要特性,它允许使用基类的指针或引用调用派生类的函数,实现不同对象对同一消息的不同响应。多态性使得程序具有更好的可扩展性和可维护性,能够根据对象的实际类型来调用相应的函数,而不是根据指针或引用的类型。
(1)多态分为两类
- 静态多态:函数重载 和 运算符重载属于静态多态,复用函数名
- 动态多态:派生类 和 虚函数实现运行时的多态
(2)静态多态与动态多态的区别
- 静态多态的函数 地址早绑定 编译阶段确定函数地址重载
- 动态多态的函数 地址晚绑定 运行阶段确定函数地址重写:和虚函数完全一样 < 返回值类型 函数名 参数列表 >
//格式
class Base{
public:
virtual void functionName(){//虚函数
//基类实现
}
virtual ~Base() {} //虚析构函数
};
二、基本语法
1、基类语法
基类定义:使用虚函数声明允许子类重写。
class Base {
public:
virtual void show(){
cout << "基类显示" << endl;
}
}
2、派生类重写
派生类重写:使用 override 关键字(可选) 实现方法重写。
当然也可以在重写的函