类的继承

一、类的继承

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

二、继承的基本语法

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

三、继承的基本特点

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

四、继承方式影响访问控制

  1. 访问控制限定符:

    访问限定符内部子类外部友元
    publicyesyesyesyes
    privateyesnonoyes
    protectedyesyesnoyes
    父类中公有子类私有子类保护子类
    publicpublicprivateprotected
    privateprivateprivateprivate
    protectedprotectedprotectedprotected
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值