继承:
面向对象中的继承指类之间的父子关系
子类拥有父类的所有成员变量和成员函数
子类就是一种特殊的父类
子类对象可以当作父类对象使用
子类可以拥有父类没有的方法和属性
继承时候的访问级别设定会影响到成员的访问级别
class Child: Parent
{}
等价于
class Child: private Parent
{}
注意:
C++中class的继承默认为private继承;
private继承的子类拥有父类的所有成员
private继承使得父类的所有成员在子类当中变为private成员
类成员访问级别设置的原则:
需要被外界访问的成员直接设置为public;
只能在当前类中访问的成员设置为private;
只能在当前类中和子类中访问的成员设置为protected;
private成员在子类依然存在,只是不能访问到;
public | protected | private | |
public | public | protected | private |
protected | protected | protected | private |
private | private | private | private |
公式:
继承成员对外的访问属性
=Max{继承方式,父类成员访问级别}
总结:
继承是一种类之间的关系,子类是一种特殊的父类;
子类通过继承可以得到父类的所有成员;
private成员可以被子类继承但不能被子类访问
protected成员只能在当前类和子类中访问
不同的继承方式可能改变继承成员的访问属性。