一.多态的概念和定义
多态的概念:
通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状态。
虚函数:就是在类的成员函数的前面加virtual关键字
多态前提: 继承
- 调用函数的类型必须是指针或者引用
- 被调用函数必须为虚函数,并且被重写(函数名,参数,返回值全部相同)
- 函数重写: 协变: 返回值的类型可以是继承关系
多态看实际指向的对象,调用对象对应类型的代码
非多态看类型
class Person {
public:
virtual void BuyTicket() { cout << "买票-全价" << endl;}
};
class Student : public Person {
public:
virtual void BuyTicket() { cout << "买票-半价" << endl;}
};
void Func(Person& p)//调用函数参数为引用
{
p.BuyTicket();
}
int main()
{
Person p;
Student s;
Func(p);//调用Person的成员函数输出买票全价
Func(s);//调用Student的成员函数输出买票半价
return 0;
}