关于多态的见解

相信大家刚开始学习一门语言时,对基础语法都有一点懵懂吧,其实我觉得每一门语言的基础语法都差不多,都有相似点,那么接下来,我来讲解关于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,我操你……”而猥琐旗就会跑过来打我,这骂和打是两种不同的行为,就好比多态的返回,多态:对不同的派生类执行同一方法,会返回不同的行为和结果。亲,画公仔画出肠了,那么你听明白了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值