第5 章 类的继承   面向对象程序设计有4 个主要特点: 抽象、封装、继承和多态性。通过前几章的学 习,初步了解了抽象和封装。要更好地掌握面向对象程序设计,还必须了解面向对象程序 设计另外两个重要特征———继承性和多态性。本章介绍有关继承的知识,在第6 章将介 绍多态性。 继承性是面向对象程序技术重要的特征。在传统的程序设计中,人们往往要为每一 种应用项目单独地进行一次程序的开发,因为每一种应用有不同的目的和要求,程序的结 构和具体的编码是不同的,人们无法使用已有的软件资源。即使两种应用具有许多相同 或相似的特点,程序设计者可以吸取已有程序的思路,作为自己开发新程序的参考,但是 人们仍然不得不重起炉灶,重写程序或者对已有的程序进行较大的改写。显然,这种方法 的重复工作量是很大的,这是因为过去的程序设计方法和计算机语言缺乏软件重用的机 制。人们无法利用现有的丰富的软件资源,这就造成软件开发中人力、物力和时间的巨大 浪费,效率较低。 面向对象技术强调软件的可重用性(software reusability)。C++语言提供了类的继承 机制,解决了软件重用问题。 5.1 继承与派生 在C++中可重用性是通过“继承(inheritance)”这一机制来实现的。因此,继承是 C++功能的一个重要组成部分。 前面介绍了类,一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员 和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。例如声明了学 生基本数据的类Student:   class Student  { public:  void display()              //对成员函数display 的定义   {cout<<"num: "<>num>>name>>sex;} void display() //输出基类数据的成员函数  {cout<<" num: "<>age>>addr;} void display_1()  { cout<<" num: "<>age>>addr;} void display_1()  {cout<<" age: "<