对于继承、实现这两种关系没有疑问, 它们体现的是一种类和类、或者类与接口间的纵向关系;
其他的四种关系体现的是类和类、或者类与接口间的引用、横向关系,是比较难区分的, 有很多事物间的关系要想准确定位是很难的, 总的来说后几种关系所表现的强弱程度依次为: 组合 > 聚合 > 关联 > 依赖;

继承 / 泛化

plantUML 的表达: <|--

实现

plantUML 的表达: <|..

依赖

plantUML 的表达: A <.. B
含义: A 是 B 的某方法的入参

关联

plantUML 的表达: A <-- B
含义: A 是 B 的成员属性

聚合

plantUML 的表达: A "*" o- "1" B
含义: 聚合是特殊的关联, 表示整体与部分的关系, B 是整体, A 是 B 的一部分, 不过 A 脱离了 B 也可以独立存在, B 的生命周期结束的同时 A 的生命周期可以继续;

组合

plantUML 的表达: A *-- B
含义: 组合是特殊的聚合, 表示 A 是 B 的一部分, A 脱离了 B 不可以独立存在, B 的生命周期结束就意味着 A 的生命周期结束;

参考链接