多态性

开发工具与关键技术: Visual Studio / C++
作者:何文涛
撰写时间:2019-6-15

多态性是指一个方法,多种意义;或着界面相同,多种实现。

多态使用方法:
基类:
类型 类名
{
同样的 类型 方法名();
}
派生类:
类型 类名:继承方式 基类类名
{
同样的 类型 方法名();
}

而需要访问多态的话,main主函数就可以通过指针来访问不同
类里面的多态,例如:
void main()
{
A A_op;
B B_op;
A *p;
p = &A_op; p->who();
p = &B_op; p->who();
}
由上所示,定义两个类其中类A是类B的基类,定义了两个类的对象
并且用基类指针p来访问派生类,这就构成了多态性。

下面就举了个多态应用的简单例子:
类定义部分:
class Ased
{
public:
Ased(int x) { a = x; }
void who() { cout << “Ased:” << a << endl; }//多态
protected:
int a;
};
class Bsed:public Ased
{
public:
Bsed(int x, int y) :Ased(x) { b = y; }
void who() { cout << “Bsed:” << a << “:” << b << endl; }//多态
protected:
int b;
};
定义了两个类,类Ased和类Bsed,其中Ased是类Bsed的基类,两个类分别定义了同样的方法who();这样一来就构成了多态性。
并且两个类都构造了变量,基类Ased构造一个int的x,把它赋值了给私有的int a,派生类Bsed则是构造了两个变量,并且还继承了基类的x,并把y给了私有成员 b。

主函数部分:
void main()
{
Ased A(12);
Bsed B(21,31);
Ased *p;
p = &A; //基类指针指向基类
p->who(); //通过基类指针调用成员函数
p = &B; //基类指针指向派生类
p->who(); //通过基类指针调用成员函数
B.who(); //通过对象调用成员函数
}
main函数这里定义了两个类的对象,并且进行了值传递,然后在定义了基类指针p,并指向了基类Ased然后通过指针p来访问基类Ased,
然后通过指向派生类的基类指针进行访问类Bsed,从而构成了多态性

输出结果:
在这里插入图片描述
第一个结果:是由基类指针指向基类,所以访问的是基类Ased的方法。
第二个结果:基类指针指向派生类,由于继承原因所以输出的是派生类Bsed的第一个数据。
第三个结果:是由派生类直接的对象来进行访问,所以理所当然的是类Bsed的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值