C++继承 多态

一,继承与派生

        继承可以在已有类的基础上创建新的类,新的类可以从一个或多个已有类中继承成员函数和数据成员,而且可以重新定义或添加新的数据和函数,从而形成类的层次或等级。其中,已有类称为基类或父类,在它基础上建立的新类称为派生类或子类,从已有类产生新类的过程就是类的派生。

子类拥有父类非private的属性和方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方法实现父类的方法。

1,继承关系有三种:

2,单继承:一个派生类只有一个直接基类 class stu : public person

多继承:一个派生类有两个或以上直接基类 class stu : public person, public gender

3,虚基类:使得在间接继承共同基类时只保留一份基类成员。虚基类并不是在声明基类时声明的,而是在声明派生类时指定继承方式声明的。在最后的派生类中不仅要对直接基类进行初始化,还要负责对虚基类初始化。

二,多态

        1,多态就是同一个事物在不同场景下的多种形态。

        派生类重写基类方法,然后用基类引用指向派生类对象,调用方法时候会进行动态绑定,这就是动态多态。

多态性就是不同对象收到相同的消息时,产生不同的动作。这样,就可以用同样的接口访问不同功能的函数,从而实现“一个接口,多种方法”。

在这里插入图片描述

 动态多态:基类中必须包含虚函数,并且派生类中一定要对基类中的虚函数进行重写。通过基类对象的指针或者引用调用虚函数。含纯虚函数的类为抽象类,抽象类不能实例化。纯虚函数一定要继承,否则没有意义。

2,虚函数

虚函数的定义是在基类中进行的,它是在基类中需要定义为虚函数的成员函数的声明中冠以关键字virtual,从而提供一种接口界面。

在基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义。虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型的顺序,都必须与基类中的原型完全相同。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值