C++三种继承方式总结

1.public,protected,private标号的访问范围。

public:可以被该类的函数,友元函数,子类函数访问,也可以由该类的对象访问。

protected:  可以被该类的函数,友元函数,子类函数访问,但不能被该类的对象访问。

private:  可以被该类的函数,友元函数访问,但不能被子类函数和该函数对象访问。

2.三种继承方法继承后子类属性的变化。

父类中的private成员在三种继承中在子类都不发生变化,仍然是private。下面主要介绍父类中的public,protected成员在三种继承中子类属性的变化:

public继承:父类中的protected,public成员在子类中不发生变化。

protected继承:父类中的protected,public成员在子类中属性降为protected。

private继承:父类中的protected,public成员在子类中属性降为private。

3.三种继承方式继承后成员可见性情况。

公有继承(public):

基类成员对于其派生类的可见性:public、protected成员可见,private成员不可见。

基类成员对于其派生类对象的可见性:public成员可见,protected、private成员不可见。

保护继承(protected):

基类成员对于其派生类的可见性:public、protected成员可见,private成员不可见。

基类成员对于其派生类对象的可见性:都不可见。

私有继承(private):

基类成员对于其派生类的可见性:public、protected成员可见,private成员不可见。

基类成员对于其派生类对象的可见性:都不可见。

4.基类与派生类的关系。

>子类是父类的具体化

这个特点和现实的真实模型很类似,比如父亲规划一个事业蓝图没有实现就乘鹤西去,通常希望儿子来完成,儿子在父亲的基础之上,不仅将父亲的事业继承过来,还能够发扬光大,将父亲规划的蓝图一点一点实现。在编程中,父类是对若干个子类的抽象,而子类是父类的具体化。父类抽取了他所有子类的公共特征,而子类通过增加行为将抽象类改造成适应当前发展需要的类。

>子类是父类定义的延续

有些家族的父亲为了锻炼后人,给后人留下的仅仅是纸上画的一张张“大饼”,让后人通过自己的努力将纸上的大饼变成可以吃的大饼。在使用C++编程中,可以在父类中只定义某些操作而不实现,由子类来实现。这种情况就是子类对父类的延续,也使子类常用的一种方法(纯虚函数)。

>子类是父类的组合

在多继承时,一个子类有多于一个的父类,这时子类将是所有父类行为的组合。子类将其本身与父类区别开的方法是添加或修改数据成员或成员函数。

猜你喜欢

转载自blog.csdn.net/yue_jijun/article/details/81085159