C++:继承(2)——public继承的赋值兼容规则(基类指针指向子类对象)

public继承 是一个接口继承,保持is-a原则,每个父类可用的成员对子类也可用,因为每个子类对象也都是一个父类对象。
protetced继承 / private继承 是一个实现继承,基类的部分成员并非完全成为子类接口的一部分,是 has-a 的关系原则。
https://blog.csdn.net/lixungogogo/article/details/51121164

public继承派生类与基类的关系

赋值兼容规则

派生类和基类之间的特殊关系为:

  • 派生类对象可以使用基类的方法,条件是基类的方法是public的
  • 基类指针可以在不进行显示类型转换的情况下指向派生类对象(赋值兼容规则
  • 基类引用可以在不进行显示类型转换的情况下引用派生类对象(赋值兼容规则
  • 基类指针或引用只能用于调用基类的方法,不能用基类指针或引用调用派生类的成员及方法

总结:在公有继承下,派生类对象可以完全替代基类对象,这是接口继承的初衷;对于基类对象可以调用的所有方法,公有继承派生类对象均可以完成调用(这里基类对象可以调用的所有方法,即基类的public方法,因为protected成员在基类的表现与private相同)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值