1. 继承的概念和定义
概念
继承(Inheritance)是面向对象程序设计中代码复用的重要手段。它允许我们在保持原有类特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),从而产生新的类,称为派生类。继承体现了由简单到复杂的认知过程,实现了类设计层次的复用。
假设我们有一个学生和一个教师类,它们都有公共的成员如名字、电话、地址等。如果不在基类中封装这些公共属性,就会导致代码冗余。通过继承,我们可以将公共成员封装到一个 Person 类中,Student 和 Teacher 继承 Person,即可复用这些成员。
class Person {
public:
// 身份识别,比如进入图书馆打卡
void Identify() {
cout << "void Identify()" << _name << endl;
}
protected:
string _name; // 名字
string _tel; // 电话
string _address;// 地址
int _age; // 年龄
};
class Student : public Person {
public:
void study() { /* ... */ }
protected:
int _stuid; // 学号 <- 学生特有
};
class Teacher : public Person {
public:
void teaching() { /* ... */ }
protected:
string _title; // 职称 <- 教师特有
};
定义
在 C++ 中,Person 被称为基类(父类),Student 和 Teacher 被称为派生类(子类)。
C++ 支持三种继承方式:public、protected、private。不同的继承方式会影响基类成员在派生类中的访问权限。
- public 继承:基类的 public/protected 成员在派生类中保持原有的访问权限。


