继承:
以原有类为基础产生新的类,我们就说新类继承了原有类的特征,也可以说是从原有类派生出新类。
派生机制优点:
代码的重用性和可扩展性。通过继承可以充分利用别人做过的一些类似的研究,和已有的一些分析、解决方案。重用这些代码,便使自己的开发工作可以站在巨人的肩膀上。软件开发完成后,当问题有了新的发展或对问题有了新的认识时,也能高效地改造和扩充已有的软件。
继承方式:
规定了如何访问从基类继承的成员。系统的默认值为私有继承。
派生类成员是指除了从基类继承来的所有成员之外,新增加的数据和函数成员。这些新增的成员,正是派生类不同于基类的关键所在,是派生类对基类的发展,当重用和扩充已有的代码时,就是通过在派生类中新增成员来添加新的属性和功能。可以说这就是类在继承基础上对的进化和发展。
派生类生成过程
1、吸收基类成员
派生类实际上就包括了它的全部基类中除构造函数和析构函数之外的所用成员。
2、改造基类成员
对基类成员的改造包括两个方面,一个是基类成员的访问控制问题,主要依靠派生类定义时的继承方式来控制;另一个是对基类数据或函数成员的覆盖或隐藏。
3、添加行的成员
派生类新成员的加入是继承与派生机制的核心,是保证派生类在功能上有所发展的关键。
访问控制:
1、公有继承
派生类的其他成员可以直接访问基类的公有成员和保护成员;
派生类的对象只能访问从基类继承的公有成员;
无论是派生类的成员还是派生类的对象都无法直接访问基类的私有成员。
2、私有继承
(基类)公有成员和保护成员-->(派生类)私有成员
无论是派生类的成员还是派生类的对象都无法直接访问基类的私有成员。
私有继承后,所有基类的成员都成为了派生类的私有成员或不可直接访问的成员。如果进一步派生的话,基类的全部成员就无法在新的派生类中被直接访问。基类的成员再也无法在以后的派生类中直接发挥作用,中止了基类功能的继续派生。
3、保护继承
(基类)公有成员和保护成员-->(派生类)保护成员
无论是派生类的成员还是派生类的对象都无法直接访问基类的私有成员。