第5章继承、多态和虚函数陈哲教授南京航空航天大学计算机科学与技术学院
1 第 5 章 继承、多态和虚函数 陈哲 教授 南京航空航天大学 计算机科学与技术学院
继承5.1继承是OOP程序设计中很重要的一个特性。继承可以扩充现有类以满足新的应用。将已有的类称之为父类,也称基类,将新产生的类称为子类,也称为派生类派生类不做任何改变地继承了基类中的所有变量和函数(构造函数和析构函数除外),并且还可以增加新的数据成员和函数,从而使派生类比基类更为特殊化例5-1:Test类继承Grade类
2 5.1 继承 • 继承是OOP程序设计中很重要的一个特性。继承 可以扩充现有类以满足新的应用。 • 将已有的类称之为父类,也称基类,将新产生的 类称为子类,也称为派生类。 • 派生类不做任何改变地继承了基类中的所有变量 和函数(构造函数和析构函数除外),并且还可 以增加新的数据成员和函数,从而使派生类比基 类更为特殊化。 • 例5-1: Test类继承Grade类
回顾类定义classGrade的基本结构floatscore;charletter;voidcalcGrade();public:void setScore(float s)score=s;calcGradeO;)float getScoreO return score;char getLetterOreturn letter;8
class Grade { float score; char letter; void calcGrade( ); public: void setScore(float s) { score = s; calcGrade( ); } float getScore( ) { return score; } char getLetter( ) { return letter; } }; 回顾类定义 的基本结构
// Definition of member function Grade::calcGradevoidGrade::calcGrade()if (score>89)letter='A';)letter=B';elseif(score>79))letter='C'else if (score > 69)elseif(score>59)letter='D';else letter ='F';
// Definition of member function Grade::calcGrade void Grade::calcGrade( ) { if (score > 89) letter = 'A'; else if (score > 79) letter = 'B'; else if (score > 69) letter = 'C'; else if (score > 59) letter = 'D'; else letter = 'F'; }
Gradeclass Test : publicintnumQuestions;intnumMissed;floatpointsEach;public:Test( int, int);7
class Test : public Grade { int numQuestions; int numMissed; float pointsEach; public: Test( int, int ); };