c++类之间的关系及实现
一、纵向关系
1、继承(Generalization)
也叫泛化关系,对于继承,可以使用"is a"来表示,比如,大学生(类B)"is a"学生(类A),是对学生(类A)的进一步刻画,那么这两个类就是"继承"关系。
——通过派生类实现继承
class Graduate : public Student
{
//子类扩展属性和方法
};
2、实现(Realization)
实现对应的是面向对象中的"接口",如动物移动,但每种移动的方式不一,鸟要实现自己独有的移动的方法。
在C++中,接口通过的纯虚函数来实现,C++的多态就是通过虚函数来实现的。
class Animal
{
public:
vitual void move();/*虚函数的定义是在基类中进行的,
提供一种接口。当基类中的某个成员函数被声明为虚函数后,
此虚函数就可以在一个或多个派生类中被重新定义。在派生类中重新定义时,
其函数原型,包括返回类型、函数名、参数个数、参数类型的顺序,
都必须与基类中的原型完全相同。*/
};
class Bird: public Animal
{
void move()
{
//鸟的移动方式,飞
}
};
二、横向关系
它们的强弱关系是:依赖 < 关联 < 聚合 < 组合,
1、依赖(Dependency)
一个对象的某种行为依赖