C++类在之前讲到有一个性质是默认私有,那我们来讲第二个性质“继承”。
继承就是各个类之间允许有相互的层级关系。
我们创建一个实体类包含所有实体内部有XY坐标,speed速度。
我们还有玩家类、载具类、坐骑类等等,他们都需要有XY坐标和speed,但是他们又都有各自特有属性。(玩家需要有暴击、攻速、装备栏,载具需要人数、油量,坐骑需要有时装、发育阶段)所以都具有位置属性那我们就简化它,让他直接继承实体类,从而简化代码。
class Entity()
{
public:
float X,Y;
void Move(int xa,int ya)
{
X = xa;
Y = ya;
}
};
calss Player()
{
public:
const char* message
float X,Y;
void Move(int xa,int ya)
{
X = xa;
Y = ya;
}
void Print()
{
std::cout<<X<<","<<Y<<std::endl;
}
};
int main()
{
Player e;
std::cin.get();
}
我们可以看到
float X,Y;
void Move(int xa,int ya)
{
X = xa;
Y = ya;
}
在Entity与Player类中这个代码块都重复出现,多创建几个就多复制几个,对代码而言没有什么意义,所以我们让Player类继承Entity类中所有函数。
class Entity()
{
public:
float X,Y;
void Move(int xa,int ya)
{
X = xa;
Y = ya;
}
};
calss Player():public Entity
{
public:
const char* message
void Print()
{
std::cout<<X<<","<<Y<<std::endl;
}
};
int main()
{
Player e;
e.Move(6,4);
e.print();
std::cin.get();
}
如此就继承了Entity类中所有函数,也不用再写重复代码了。Entity就是父类,Player就是其子类具有除父类以外的扩展函数。创建Player就可以即使用本身函数又使用父类公有出的函数,因为我们用到的是Public Entity。
至此Player类既有Player类型又有Entity类型,一个类型有多个类型,我们称为“多态”,理解这一概念就好。
继承就是各个类之间允许有相互的层级关系,子类比父类多点东西,就这样。