一张类图理解UML各种关系

 类图的各种箭头,各种关系总是记了忘,忘了记,这次画个图再加深一下记忆:

一张类图理解UML各种关系

聚合和组合是两种比较特殊的关联关系。补充如下:

1.继承
子类拥有超类的所有属性和行为

class A{}
 
//B继承了A中的所有的方法和属性,对于私有的方法和属性,子类只能是拥有,但无法直接使用。
class B extends A{}
 

2.关联
一般以类的属性形式出现在关联类中,使用成员变量来实现。又分为聚合关系和组合关系。

class A{}
 
class B{
    A a;//成员变量引入了A类
}
3.聚合
has a:强关联,一个类的实例由另一个类的实例构成,后期使用不会因为对象的删除而删除。

class A{}
 
class B{
    A a;//成员变量引入了A类
  B(A a){
      this.a = a;
  }
}
 
4.组合
contains a:强聚合,组合的对象不能由其他对象共享,且与构成他的对象一起消亡。整体和部分是不可分割的,有共同的生命周期。

class A{}
 
class B{
    A a;//成员变量引入了A类
    B(){
        this.a = new A();
    }
}