C++类的继承

13 篇文章 0 订阅

类的继承

  1. 共性与特性
    • 表达不同类型事物之间共有的属性与行为
    • 个性用于刻画每种事物特有的属性和行为
  2. 共性表示为父类(基类),个性表示为子类(派生类)
    • 子类继承自父类
    • 基类派生出子类

继承的基本语法

  1. 继承表
    • 一个子类可以同时继承0到多个父类,每个父类的继承方式可以相同也可以不同
      class 子类:继承方式1 父类1,继承方式2 父类2,...{}
  2. 继承方式
    • public 共有继承:父类的特性可以通过子类向外扩展
    • private 私有继承:父类的特性只能为子类所有
    • protected 保护继承:父类的特性只能在继承链内扩展

继承的基本特点

  1. 公共特点(所有继承都有的特点)
    • 子类对象可以当作父类对象来使用,子类对象与父类对象没有本质上的区别
    • 子类的逻辑空间小于父类,但它的物理空间大于等于父类
    • 子类对象 IS A 父类对象
  2. 向上和向下转换(造型)
    • 从子类到父类:子类的指针可以隐式转换成父类的指针或引用,这是一种缩小类型的转换,对于编译器来说是安全的(父类指针指向子类对象是安全的)
      Father a = new son;
    • 从父类到子类:父类的指针或引用不可以转换成子类的指针或引用,这是一种扩大型的转换,在编译器来看是危险的(子类的指针指向父类的对象是不安全的)
    • 编译器仅仅是检查指针或引用的数据,而对实际引用的目标对象不关心(构成多态的基础)
    • 类型一致:父类的指针或引用实际的目标类型是否需要转换成实际的指针或引用由程序员自己决定
  3. 子类会继承父类的所有成员,(公开,私有,保护)
  4. 子类会隐藏父类的同名成员
    1. 可以通过域限定符 父类::隐藏成员 进行访问父类中的隐藏成员
    2. 可以使用指针的指针或引用来指向子类对象,然后访问父类中的隐藏成员
  5. 虽然子类继承了所有父类中的成员,但不能访问父类中的私有成员

继承方式影响访问控制

父类成员在不同作用域的访问权限

父类成员内部子类外部友元子类对象(public继承)子类对象(protected继承)子类对象(private继承)
public
protected
private

继承的访问控制

父类成员公有继承的子类保护继承的子类私有继承的子类
publicpublicprotectedprivate
protectedprotectedprotectedprivate
private不可直接访问不可直接访问不可直接访问
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值