UML类图的几种关系

泛化(Generalization)
概念:is a kind of 描述类和类之间的继承关系,是一种特殊-一般关系,主要表现为父类与子类之间的继承。

举例:
如下图所示,员工是父类,工程师和经理是子类,工程师和经理都继承了员工父类的属性和行为。
类似的还有:动物(父类)-猫(子类);汽车(父类)-小轿车(子类)
图形表示:用带三角箭头的实线表示,箭头指向父类

UML类图的几种关系
继承分为单重继承和多重继承
单重继承:一个子类有且只有一个父类(如下图所示:活期账户和储蓄账户只继承了银行账户这一个父类)

UML类图的几种关系
多重继承::一个类有两个或两个以上的父类(如下图所示:汽车这个父类下面有陆路车和水上车两个子类,他们下面又有一个子类水陆两用车,水陆两用车既继承了陆地车辆的特征,也继承了水上车的特征,这就是多重继承)
UML类图的几种关系

实现(Realization)
概念:类是接口特征和行为的实现

图形表示:带三角箭头的虚线,箭头指向接口
UML类图的几种关系

关联 (Association)
概念:描述了两个或多个类之间的结构性关系

UML类图的几种关系
关联既可以是双向的,也可以是单向的,单向的关联有一个箭头,双向的关联可以有两个箭头也可以没有箭头

UML类图的几种关系
多向关联:一名老师拥有多名学生,一名学生也可以有多名老师,所以老师与学生的关系是多向关联关系,可以带箭头也可以不带箭头
UML类图的几种关系
单向关联:一个学生拥有多门课程,但是课程是抽象概念,不拥有学生,所以课程和学生之间是单向关联
UML类图的几种关系
自关联:老师与老师之间的关联称为自关联

关联又分为两种
聚合 (Aggregation):松耦合, 整体-部分关系,用空心菱形表示
UML类图的几种关系
解释:书架没了,书也可以独立存在,他们之间没有生命依赖关系,没有强生命力的制约,不是说先有书架再有书
组合 (Composition):整体-部分关系,组合关系用实心菱形表示
UML类图的几种关系
解释:这是一种强耦合关系,先有书,才能有页,没有书,页也就不存在了

依赖 (Dependency)
概念:依赖关系是一种使用关系,说明一个事物规格说明的变化可能影响到使用它的另一个事物。但反之未必。 依赖关系是普遍存在的。

图形表示:依赖关系用虚线箭头表示,箭头指向被依赖一方
UML类图的几种关系

各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖