#include "pch.h"
#include <iostream>
#include<iomanip>
#include<iostream>
#include<fstream>
#include<assert.h>
using namespace std;
/*********基类和派生实现继承***************/
class Human {
public:
//人类共有的行为
void Walk()
{
//走路
}
void Talk()
{
//说话
}
protected: //可以在类的内部和类的派生类中访问,主要作用是吧属性方法遗传给子类
string m_strName;//名字
int m_nAge;//年龄
bool m_bMale;//性别
private: //只能在类的内部访问
};
//public继承 基类所有成员的访问在派生类中不做改变
//private继承 基类所有公有成员变成自己的private成员
//protected继承 基类所有公有成员变成自己的protected成员
class Teacher :public Human {
//3.添加新的属性和行为
public:
void PrepareLesson() {
//备课
}
void TeacherLesson() {
//上课
}
void ReviewHomework() {
//批改作业
}
protected:
int m_nDuty;//职称
private:
};
class Student :public Human {
public:
void AttendClass() {
//上课
}
void DoHomework() {
//做家庭作业
}
protected:
int m_nId;//学号
};
class Pupil :public Student {
public:
//2.改进基类的属性和行为
void AttendClass() {
//上课
}
void DoHomework() {
//做家庭作业
}
};
void main()
{
Teacher teacher;
teacher.Walk();//1.保留基类的属性和行为
}
继承的过程就是类的不断具体化,不断传承基类的属性和行为,并且发展自己特有的属性和行为的过程。
规则:B是A的一种,则允许B继承A。
A是B的一部分,则不运行B继承A。
总结:A包含B继承
A属于B组合https://blog.csdn.net/Alice_boy/article/details/86665808