C++基础学习第九课(C++继承)

第九课

1,类的继承

·继承可以使得子类具有父类的属性和仿佛或者重新定义、追加属性和方法;

2,继承相关概念

·继承是类之间定义的一种重要关系;

·一个B类继承A类,或者说从A类派生B类;

·那么A类称为基类,B类称为派生类(子类);

3,派生类的定义

·类继承关系的语法:

class 派生类名:基类名列表
{
    //成员变量和成员函数声明;
}

·基类名列表:

访问限定符 基类名1,访问限定符 基类名2…

·访问限定符表示派生类对基类的继承方式,使用关键字:

·public 公有继承

·private 私有继承

·protected 保护继承

·派生类继承了基类的全部成员变量和成员方法(除了构造和析构之外的成员方法),但是这些成员的访问属性,在派生过程中是可以调整的;

4,继承重要说明

1,子类拥有父类的所有成员变量和成员函数;

2,子类可以拥有父类没有的方法和属性;

3,子类就是一种特殊的父类;

4,子类对象可以当作父类对象使用;

5,派生类的访问控制

·不同的继承方式会改变继承成员的访问属性

1,public继承 : 父类成员在子类中保持原有访问级别;

2,private继承: 父类成员在子类中变为private成员;

3,protected继承:

父类中public成员会变成protected;

父类中protected成员仍然为protected;

父类中private成员仍然为private;

6,继承属性访问表

·private成员在子类中仍然存在,但是却无法访问到,不论哪种方式继承,派生类都不能直接使用基类的私有成员;

如表格:

继承方式基类的public成员基类的protected成员基类的private成员
public子类为public子类为protected不可见
protected子类为protected子类为protected不可见
private子类为private子类我private不可见
7,能否被访问、继承方式选择

1,判断成员是否能被访问:三看

·看调用语句,是写在子类的内部还是外部;

·看子类如何从父类继承的

·看父类访问级别

2,派生类类成员访问级别设置的原则

·需要被外界访问的成员直接设置为public;

·只能在当前类中访问的成员设置为private;

·只能在当前类与子类中访问的成员设置为protected,protected成员的访问权限介于public和private之间;

·一般情况下,均使用public继承方式;

8,继承中的构造和析构

1,在子类对象构造时,需要调用父类构造函数对其继承得来的成员进行初始化;

2,在子类对象析构时,需要调用父类析构函数对其继承得来的成员进行清理;

·继承中的构造和析构调用原则:

1,子类对象在创建时会首先调用父类的构造函数;

2,父类构造函数执行结束后,执行子类的构造函数;

3,当父类的构造函数有参数时,需要在子类的初始化列表中显示调用;

4,析构函数调用的先后顺序与构造函数相反;

9,类型兼容性原则

·类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代;

·通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员;

·公有派生类实际就具备了基类的所有功能,凡是基类能解决的问题,公有派生类都可以解决;

1,类型兼容规则中所指的替代包括以下情况:

·子类对象可以当作父类对象使用;

·子类对象可以直接赋值给父类对象;

·子类对象可以直接初始化父类对象;

·父类指针可以直接指向子类对象;

·父类引用可以直接引用子类对象;

2,在替代之后,派生类对象是可以作为基类的对象使用,但是只能使用从基类继承的成员;

3,类型兼容规则是多态性的重要基础之一;

10,继承中同名成员处理方法

1,当子类成员变量与父类成员变量同名时,子类依然从父类继承同名成员;

2,在子类中通过作用域分辨符::进行同名成员区分(在派生类中使用基类的同名成员,显式地使用类名限定符)

11,继承中的static成员

1,基类定义的静态成员,将被所有派生类共享;

2,根据静态成员自身的访问特性和派生类的继承方式,在类层次体系中具有不同的的访问性质;(遵守派生类的访问控制);

3,派生类中访问静态成员,用以下形式:

类名::成员

或通过对象访问: 对象名.成员;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值