单继承:
一个子类只有一个直接父类时,称这个继承关系为单继承
多继承:
一个子类中有两个或以上直接父类时,称这个继承关系为多继承
菱形继承:
是一种特殊的继承关系
菱形继承的问题:有数据冗余和二义性的问题。会在后面结合汇聚结合对象中有某成员的多份。
虚位继承可以解决菱形继承的二义性和数据冗余问题。方法是:虚基表指针和虚基表。
继承关系的总结:
继承和组合关系:
1.public继承是一种is-a的关系。也就是说每个子类对象都是一个父类对象;
2.组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象;
3.优先使用对象组合,而不是类继承;
4.继承允许我们根据父类的实现来定义子类的实现;这是通过生成子类的复用,通常被称之为白箱复用。
5.对象组合是类继承之外的另一种复用选择。对象组合要求被组合的对象具有良好的定义的接口,这种复用的风格称之为黑盒复用,对象的内部细节是不可见的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)