多态相关(虚函数,覆盖,纯虚函数,抽象类)


面向对象三大特性:封装,继承,多态


其中多态在C++里是通过虚函数来实现的,主要实现的功能是继承里父类的指针调用子类的功能函数


覆盖:覆盖虚函数才能实现多态。覆盖普通函数并不能实现多态…


重载:和多态没有半毛钱关系,本质上重载其实是不同的函数


纯虚函数:函数声明加=0。强制子类实现,不能实例化。


抽象类:包含纯虚函数的类,强制子类实现不能实例化。




更为具体的,看下面这个例子:

#include<iostream>
using namespace std;


class 族谱 {
public:

	virtual void 说两句() = 0;//纯虚函数,有纯虚函数不能实例化
	void 属性() { cout << "I am ZUPU"<<endl; }
};
class 爸爸 :public 族谱 {
public:

	virtual void 说两句() { cout << "我是爸爸" << endl; };
	void 属性() { cout << "I am BABA"; }
};
class 你 :public 爸爸 {
public:

	virtual void 说两句() { cout << "我是孙砸" << endl; };
	void 属性() { cout << "I am SUNZEI"; }
};

int main() {
	//族谱 族谱;//报错,因为抽象类不能实例化
	爸爸 爸爸;
	你 你;
	族谱 *p1 = &爸爸;
	族谱 *p2 = &你;
	cout << "====多态=====" << endl;
	p1->说两句();
	p2->说两句();
	cout << "====没virtual=====" << endl;
	p1->属性();
	p2->属性();
	system("pause");

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱铭德

五毛也是爱٩(●´৺`●)૭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值