多态和虚函数
- 什么是多态性
如果一种语言只有类,没有多态,是不能称为面向对现象语言
如果一种语言只支持类概念,那么只能称为使用/基于对象的语言
面向对象编程的多态性包括:
- 向不同的对象发送同一条消息(消息就是函数调用)
- 不同的对象在接收时候会产生不同的心行为(执行不同的函数)
- 函数名相同,执行的动作不一样
静态多态:函数重载
动态多态:函数重写
- c++函数重写,必须先把父类的成员函数设定为虚函数
- 虚函数:virtual 返回值 函数名();
class Hero
{
protected:
//省略基类属性
public:
virtual void Move(); //基类方法前加上virtual 表示函数重写
};
class Warrior:public Hero
{
public:
void Move() override; //函数重写,在子类方法后加override
};
class Archmage:public Hero
{
public:
void Move() override;
}
void Warrior::Move()
{
cout << "战士在移动" << endl;
}
void Archmage::Move()
{
cout << "法师在移动" << endl;
}