[ 随手记 5 ] C/C++ 继承
个人理解:
继承:(意译)继续承接;
A继承B,则A是派生类/子类,B为基类/父类;
B有的成员变量/性质,A全部都有,而A有的B不一定有,在数学集合上可以说:B是A的子集;
A继承B,可以说是A在B的基础上继续声明定义类,补全,承接,使其成员变量更多;
转载资源:
转自:https://www.cnblogs.com/qq329914874/p/5998584.html
一,为什么要引入继承?
继承是一个非常自然的概念,现实世界中的许多事物也都是具有继承性的。
例如,爸爸继承爷爷的特性,儿子又继承爸爸的特性等都属于继承的范畴。下面是一个简单的汽车分类图:
在这个分类图中建立了一种层次结构,最高层是最普遍,最一般的,每一次都比它上一层的更详细,更具体。
其中把上一层的叫做基类(或父类),紧接着基类的下一层叫做派生类(或子类)。
所谓继承,就是从先辈处得到属性和特征。
类的继承就是新类从已有类得到已有的特性,新类被称为派生类,已有类被称为基类。可抽象为派生类是基类的具体化,而基类则是派生类的抽象。
下面通过一个例子说明为什么要引用继承?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Person { private : int length; //身高 int weight; //体重 int borndate; //出生日期 }; class Student { private : int length; //身高 int weight; //体重 int borndate; //出生日期 int score; //成绩 int total; //总分 char * school; //学校 }; |
上面定义了两个类,一个人类,一个学生类,仔细观察我们发现人类中具有的属性(即类的成员数据)在学生类中都具有。
换言之,学生也是人,反过来讲人不一定是学生。就像这样的代码,人类中的属性我们重复定义了两次.
那么有没有一种方法能避免这种代码重复呢?是的,这就是我们的继承.
继承机制是面向对象程序设计中避免代码重复的最重要的手段,它允许程序员对已有类进行扩展,增加功能.
二,继承的定义格式
eg:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
class Person { private : int length; //身高 int weight; //体重 int borndate; //出生日期 }; class Student: public Person { private : int score; //成绩 int total; //总分 char * school; //学校 }; |
创建一个学生对象试试
基类的所以对象都被继承过来了,很棒吧!
注意:class如果没有显示的给出继承方式,系统默认为private继承,但是最好还是显示定义继承类型,即使是私有继承。
(struct的默认继承方式则是public。)
1.// 变幻的大千世界, 浩瀚的知识海洋, 我只是: 一个IT的从业者, 一个知识的记录者, 一个知识的搬运工!////
2.// 文章可能是原创/转载/共享资源/混合整合作品,若有侵权,请联系我处理,谢谢!////