繁体   English   中英

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

[英]difference between interface inheritance and implementation inheritance

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

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

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

更新

为了反思@Michal的评论,这里有一些链接(主要基于谷歌搜索“c ++实现继承” )来演示这些术语在C ++环境中的常见用法:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM