从基类派生出派生类,派生类继承基类的继承方式有三种:public、protected和private。在未指定的情况下编译器会默认继承方式为protected或private方式。
1) public继承方式
-
- 基类中所有protected成员在派生类中为protected属性;
- 基类中所有private成员在派生类中不可访问。
具体示例可以参考上一节中的例1,在此就不再重新举例了。
2) protected继承方式
- 基类中的所有public成员在派生类中为protected属性;
- 基类中的所有protected成员在派生类中为protected属性;
- 基类中的所有private成员在派生类中仍然不可访问。
本类同样使用上一节中的示例,此时继承方式改为了protected继承,我们再来分析一下codingbook中类成员的属性问题,具体见下表。
codingbook类成员 | 成员属性 | 来源 |
---|---|---|
price | 不可访问 | 继承自book类 |
title | 不可访问 | 继承自book类 |
| private | codingbook新增 |
setprice | protected | 继承自book类 |
settitle | protected | 继承自book类 |
getprice | protected | 继承自book类 |
gettitle | protected | 继承自book类 |
dispaly | protected | 继承自book类 |
| public | codingbook新增 |
| public | codingbook新增 |
3) private继承方式
- 基类中的所有public成员在派生类中均为private属性;
- 基类中的所有protected成员在派生类中均为private属性;
- 基类中的所有private成员在派生类中均不可访问。
例2:
同样,我们来分析一下本例中的codingbook类中所有成员的成员属性,具体见下表。
codingbook类成员 | 成员属性 | 来源 |
---|---|---|
price | 不可访问 | 继承自book类 |
title | 不可访问 | 继承自book类 |
lang | private | codingbook新增 |
setprice | private | 继承自book类 |
settitle | private | 继承自book类 |
getprice | | 继承自book类 |
gettitle | private | 继承自book类 |
dispaly | private | 继承自book类 |
setlang | public | codingbook新增 |
| public | codingbook新增 |