C++day5
类的继承
共性
不同类型事物之间共有的属性和行为
个性
每种事物特有的属性和行为
共性表示父类(基类),个性表示子类(派生类)
继承的基本语法
每个子类可继承0~n个父类
继承方式
public
父类特性可通过子类向外扩展
1、成员 2、友元 3、子类 4、外部
private
父类特性不可向外扩展,只能子类调用
1、成员 2、友元
protected
父类特性只能在继承链内扩展
1、成员 2、友元 3、子类
继承的基本特点
公共特点
子类对象可以当做父类对象使用,子类对象和父类没有本质上区别
子类的逻辑空间小于父类,物理空间大于等于父类
向上和向下转换(造型)
从子类到父类
子类的指针、引用可以隐式转换成父类指针或引用
缩小类型的转换,对编译器来说安全
从父类到子类
父类指针、引用不可转换成子类的指针、引用
扩大类型转换,对编译器危险
子类会继承父类的所有成员(public、private、protected)
子类会隐藏父类同名成员
父类的函数和子类函数同名,参数不同,无论有无virtual都会隐藏
父类函数和子类函数同名,参数相同,无virtual会隐藏,有virtual会被覆盖
继承方式影响访问控制
父类被不同的方式继承
影响范围
后面的子类,外部