1、公有继承
基类的public成员被继承到派生类的public访问限定符下,基类的protected成员被继承到派生类
的protected访问限定符下,而基类的private成员被继承到派生类的不可见位置,无法直接访问。
2、保护继承
基类的protected成员和public成员都被继承到派生类的protected访问限定符下,而private成员
被继承到不可见位置,无法直接访问。
3、私有继承
基类的public成员和protected成员都被继承到派生类的private访问限定符下,对于基类的private
成员同样被继承到派生类的不可见位置,无法直接访问。
4、Is a 和 Has a关系
使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不会成
为派生对象公有接口的一部分,但可以在派生类的成员函数中使用它们。这种不完全继承是Has a关系
的一部分,使用包含关系(成员对象)也可以实现Has a关系,因为我们只能够调用成员对象中的共有
方法,而成员对象只能够使用成员函数进行调用,而不会成为外部可操作的对象。
使用公有继承,基类的公有方法将成为派生类的公有方法。简而言之,派生类将继承基类的接口,这是
is-a关系的一部分。
时间: 2024-10-05 10:00:46