1.多态的概念
多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会
产生出不同的状态
多态概念的个人解析:日常生活中我们买高铁票时,如果是学生可以买学生票享受85折,成人买成人票,就不同身份的人买票会买到不同价位的票
2.多态的定义和实现
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如
Student
继承了
Person
。
Person
对象买票全价,
Student
对象买票半价。
那么在继承中要
构成多态还有两个条件
:
1.
必须通过基类的指针或者引用调用虚函数
2.
被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写
class person
{
public:
virtual void Butick()
{
cout << "买全票" << endl;
}
};
class Student :public person
{
public:
virtual void Butick()
{
cout << "买半票" << endl;
}
};
void fun(person& p)
{
p.Butick();
}
int main()
{
person P1;
Student P2;
fun(P1);
fun(P2);
return 0;
}
注:1.虚函数就是virtual修饰的类成员函数
2.虚函数的重写(覆盖):派生类中有一个跟基类完全相同的虚函数(即派生类虚函数与基类虚函数的 返回值类型、函数名字、参数列表完全相同),称子类的虚函数重写了基类的虚函数。
3.重载、重写、隐藏的对比