继承
继承是面向对象程序设计中一个重要的机制,它能体现类的层次关系。继承使得程序员可以在一个较一般的类的基础上很快地建立一个新类,而不必从零开始设计每个类,实现了代码重用。在现实世界中,许多实体或概念不是孤立的,它们具有共同的特征,但也有细微的差别,人们使用层次分类的方法来描述这些实体或概念之间的相似点和不同点。比如“学生”是“小学生”和“大学生”的父类(基类),“小学生”和“大学生”分别是“学生”的子类(派生类),子类具有父类的全部属性并有自己新增的属性。
派生类
继承机制是在原有类的基础上通过修改或扩充构成新类,产生的新类成为派生类,原有类称为基类。
1.派生类的定义形式:
class 派生类名:继承方式 基类名
{
成员声明;
};
2.继承方式:
(1)公有继承:派生类继承基类的公有成员和保护成员,这两种成员的访问属性在派生类中保持不变。
(2)私有继承:派生类继承基类的公有成员和保护成员,这两种成员在派生类中均为私有成员。
(3)保护继承:派生类继承基类的公有成员和保护成员,这两种成员在派生类中均为保护成员。
由以上继承规则可以看出,公有成员和保护成员都能被派生类继承,但私有成员不能,并且保护成员既体现了私有成员的特性(只能通过基类和派生类的函数访问)也体现了公有成员的特性(能被继承,派生类的成员函数能访问基类的保护成员),因此合理设置保护成员在继承中十分重要。