继承和多态

继承

class 子类:继承方式 父类

子类中包含两大部分:一类为基类中继承过来的,一类为自己增加的成员。

从基类继承过来的表现其共性,而新增的成员体现了其个性。

继承分为三类:

父类的私有类型子类不可访问

父类中所有的非静态成员属性都会被子类继承,而私有成员属性是被编译器给隐藏了,因而访问不到,但确实被继承下去了。

如果通过子类对象访问父类同名成员,需要加作用域(静态同名成员也一样)。

多继承语法:

class 子类 : 继承方式 父类1 , 继承方式 父类2...

多继承中如果父类出现同名情况,子类使用时加作用域。

菱形继承会产生的问题:

子类使用数据时会产生二义性

子类继承了两份父类的父类的数据,而这个数据只要一份就够了。

利用虚继承解决菱形继承问题(在继承之前加上关键字virtual变为虚继承)

多态:

多态分为静态多态和动态多态

静态多态:函数重载和运算符重载

动态多态:派生类和虚函数实现运行时多态

动态多态为晚绑定,满足的条件:1、有继承关系;2、子类重写父类的虚函数。

动态多态的使用:用父类的指针或者引用执行子类对象

原文地址:https://www.cnblogs.com/roscangjie/p/11403573.html