类的继承有三种继承方式public,protected,private
图中三种颜色表示三种不同的访控属性。
绿色表示子类成员和外部均可以访问;
黄色表示子类成员可以访问,但外部不可以访问;
红色表示子类成员和外部都不可以访问。
public继承:该继承不会改变父类中的属性,被继承过来的成员依然保留父类中的属性,需要注意的是对于继承过来的父类中的私有成员子类不能直接访问,需要通过调用父类提供的非private成员函数访问。
protected继承:将父类中的public成员修改为protected成员,子类外部代码无法访问子类中从父类继承过来的public成员。
private继承:父类中的private成员依然是private,同时子类还会将父类中其他成员属性修改为private。需要注意的是对于父类中本来就是private的属性子类内部是无法访问的。子类可以访问自身修改后为private的成员。