在UML类图中,类之间的关系可以分成:关联(association)、聚合(aggregation)、组合(composition)、依赖(dependency)、泛化(generalization)/继承(inheritance)和实现(realization)。这六种关系如下图所描绘:
通俗来讲:
关联(Association):A类有B类有逻辑上的连接
聚合(Aggregation ): A类有一个B类
组合(Composition): A类拥有一个B类
依赖(Dependency): A类使用了B类
继承(Inheritance): B类是一个A类的子类 (或者B类扩展A类)
实现(Realization): B类实现了接口A
关联
举例来讲就是:学生与老师,课程之间有逻辑关系;
聚合
一个班有多个学生是,班级没了不影响学生这个个体的存在;
组合
包含关系,一个人有很多器官,比如程序员的头发,程序员负责头发的创建以及生命周期,当程序员火化(对象被销毁)时头发也随之销毁;
依赖
一个类的引用用作另一个类的方法的参数,举例来说就是牛产奶行为(方法) 吃草挤奶,有入参(草),出参是奶,两个对象,草,奶都被牛对象所依赖;
继承
子类包含父类,子类可以重写父类的方法,(java可以多重继承,不能多继承)如下图:
实现
一个类实现了接口(可以是多个)。举例来讲就是,父亲经常吹牛,说自己有八块腹肌,但是没毅力锻炼,(抽象方法)儿子继承了这个想法,从小就坚持锻炼,成功拥有了八块腹肌(抽象方法的实现);