继承,实现,关联,聚合,组合,依赖几种关系的介绍

继承: generalization

继承是一种泛化的关系,是子类和父类之间的纵向关系;

例如: 水果(一般化), 苹果,香蕉,橘子,榴莲(相对具体化);

在逻辑上,子类是父类的一种,是“is-a”的关系;

通常逻辑上具有上述关系("is-a")的类,就可以继承;

子类继承父类,则子类拥有了父类的所有方法和属性;

UML类图:

继承,实现,关联,聚合,组合,依赖几种关系的介绍

实现:realization

实现是类和接口之间的一种关系,接口是行为一种约定,C++是通过纯虚函数的形式给出的;

例如: 有一个接口类电灯,通过了开和关的方法,实现的时候,只要实现这两个方法;

客户在使用的时候,只要拿到接口就可以调用方法了。从而隐藏了具体实例对象中的属性;

继承,实现,关联,聚合,组合,依赖几种关系的介绍

关联: association

关联关系是两个事物之间的一种长期的,比较固定的一种相互关系;

是一个对象和另外一个对象之间的引用关系;

对象和对象之间相互独立;对象的类在层次上是同一个级别;

例如: 我和我的朋友;

继承,实现,关联,聚合,组合,依赖几种关系的介绍

聚合:aggregation

聚合关系是关联关系的一种;

表示一种整体和部分的关系, "has-a";

例如: 公司和员工;

公司和员工之间是可以存在的;公司倒闭了,员工可以换另外的工作,员工加班累死了,公司不会因为员工的问题倒闭,

除非是老总(==);

在实现上通常是以实例变量的方式给出;

继承,实现,关联,聚合,组合,依赖几种关系的介绍

组合: composition

组合关系也是关联关系的一种;

表示的也是整体和部分的关系,这种关系要比聚合关系要强,是一种强聚合,"contains-a";

例如:头和大脑的关系;

在这种关系中,整体的生命周期控制着部分的生命周期;