1.多态的概念
目录
不同的对象完成某个行为时会产生不同的状态,这种现象称为多态。
例如:对于买票这件行为,普通人买的是全价票,而学生买的是半价票
class Person
{
public:
virtual void buyTicket()
{
cout << "普通票" << endl;
}
};
class Student :public Person
{
public:
virtual void buyTicket()
{
cout << "半票" << endl;
return new B();
}
};
2.多态的实现
前提:继承
两个条件:
(1)必须通过基类的指针或引用调用虚函数
(2)被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写
虚函数:
被virtual修饰的类成员函数称为虚函数
class Person
{
public:
virtual void buyTicket()
{
cout << "普通票" << endl;
}
};
虚函数的重写:
虚函数的重写(覆盖):派生类中有一个跟基类完全相同的虚函数(派生类虚函数与基类虚函数的返回值类型、函数名、参数列表完全相同),称派生类的虚函数重写了基类的虚函数
虚函数重写的另外两个例外ÿ