相信大家刚开始学习一门语言时,对基础语法都有一点懵懂吧,其实我觉得每一门语言的基础语法都差不多,都有相似点,那么接下来,我来讲解关于C++的简单多态,多态顾名思义就是多种形态的意思,当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态,看如下代码:
#include<iostream>
using namespace std;
class 憨仔
{
public:
virtual int area()
{
cout << "憨仔:我是憨仔" << endl;
return 0;
}
憨仔 (int a=5,int b=6)
{
kjl = a;
iinr = b;
};
private:
int kjl;
int iinr;
};
class 猥琐富 : public 憨仔
{
public:
猥琐富(int a=0,int b=0):憨仔(a,b){}
int area()
{
cout << "猥琐富:我是憨仔大王" << endl;
return 0;
}
};
class 猥琐旗 : public 憨仔
{
int area()
{
cout << "猥琐旗:我是憨仔二号" << endl;
return 0;
}
};
class 婉儿: public 憨仔
{
int area()
{
cout << "婉儿:I LOVE YOU!DAFU." << endl;
return 0;
}
};
void main()
{
憨仔 *hanzai;//指向憨仔对象的指针
猥琐富 li;
猥琐旗 wu;
婉儿 wan;
hanzai = &li;//取地址
hanzai->area();//指针引用
hanzai = &wu;
hanzai->area();
hanzai = &wan;
hanzai->area();
};
当编译和执行前面的实例代码时,它会产生以下结果
由上代码,我们可知基类憨仔被派生为三个类,分别为猥琐富、猥琐旗和婉儿,而且每个类中都有一个函数area()独立的实现,并且它们返回不同的结果,这就是多态的一般使用方式,再说得通俗详细点就是,比如:我踢了猥琐富一脚屁股,我也踢了猥琐旗一脚屁股,我对他们都是做出了同一个动作行为,而猥琐富就会骂:“DAFU,我操你……”而猥琐旗就会跑过来打我,这骂和打是两种不同的行为,就好比多态的返回,多态:对不同的派生类执行同一方法,会返回不同的行为和结果。亲,画公仔画出肠了,那么你听明白了吗?