接口继承和实现继承之间的区别

时间:2010-09-22 22:53:02

标签: c++ inheritance

我在迈耶斯的书中找到了这两个词,但有什么区别?

3 个答案:

答案 0 :(得分:17)

接口继承是公共继承,而实现继承是私有继承。

如果B类公开继承自A,则B A:它继承A的整个接口,并且B(对象/指针)B对象可以自动上传到A,并且在预期A的对象的任何地方使用。但是,如果B私有地继承自A,则B 是实现的 - A:只继承A的实现,其接口。因此(引用/指向)B对象可以在需要A对象的地方使用。

更新

要反思@Michal的评论,这里有一些链接(主要基于googling "c++ implementation inheritance")来演示这些术语在C ++语境中的常见用法:

答案 1 :(得分:1)

实现(或类)继承是指在基类中分离实现的公共部分。

接口继承是指使用虚拟方法时。它旨在将接口与实现分开,并最大限度地减少程序元素之间的依赖关系。

答案 2 :(得分:0)

主要区别在于接口是公共继承,而实现是私有继承。 公共和受保护部分的数据成员和方法将在公共继承的各自访问说明符中从基类继承到派生类。同时派生类的对象可以作为常规方法访问基类的数据成员。 public和protected部分的数据成员和方法将从私有访问说明符

中的基类继承到派生类