一、继承的基本概念
第一级抽象:从具体的对象抽象出共同的属性和行为。
学生:姓名、年龄、学号、吃饭、睡觉、学习
教师:姓名、年龄、工资、吃饭、睡觉、授课
第二级抽象:将类型之间共性抽取出来形成超集,将类型之间的个性具体化的不同子集中。
人类:姓名、年龄、吃饭、睡觉 - 超集体现共性 - 基类 | 派生 ^
学生是人类的一部分:学号、学习 \ 子集 - 子类 V | 继承
教师是人类的一部分:工资、授课 / 体现个性
二、继承的语法形式
class Human {
public:
void eat (string const& food) { ... }
void sleep (int durations) { ... }
private:
string m_name;
int m_age;
};
class Student : public Human {
public:
void learn (string const& course) { ... }
private:
int m_no;
};
class Teacher : public Human {
public:
void teach (string const& course) { ... }
private:
double m_salary;
};
Student s (...);
s.eat ("KFC");
s.sleep (1);
s.learn ("C++");
Teacher t (...);
t.eat ("狗不理");
t.sleep (10);
t.teach ("UC");
class 子类 : 继承方式1 基类