为了账号安全,请及时绑定邮箱和手机立即绑定

is a 和 has a怎样区别?

is a 和 has a怎样区别?私有继承是has a吗?那么is a是公有继承实现的吗?

正在回答

1 回答

is a”代表的是类之间的继承关系,“has a”代表的是对象和它的成员的从属关系。c++还有另一种实现has-a关系的途径----私有继承。使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不会成为派生对象公有接口的一部分,但可以在派生类的成员函数中使用它们。
使用公有继承,基类的公有方法将成为派生类的公有方法。简而言之,派生类将继承基类的接口,这是is-a关系的一部分。使用私有继承,基类的公有方法将成为派生类的私有方法。简而言之,派生类不能继承基类的接口。正如从被包含对象中看到的,这种不完全继承是has-a关系的一部分。
因此私有继承提供的特性与包含相同:获得实现,但不获得接口。所以,私有继承也可以用来实现has-a关系。

4 回复 有任何疑惑可以回复我~
#1

勇敢的小点点 提问者

非常感谢!
2017-10-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之继承篇
  • 参与学习       75188    人
  • 解答问题       251    个

继承,C++面向对象三大特征之一,通过编码实践方式讲解到操作层面

进入课程

is a 和 has a怎样区别?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号