一张类图理解UML各种关系

浪尽此生 提交于 2019-12-18 19:19:13

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

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

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();
    }
}
 
 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!