java中类与类之间的几种关系

转载 2016年08月31日 15:56:12

一、继承关系

继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。
这里写图片描述

二、实现关系

实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性。在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。
这里写图片描述

三、依赖关系

简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。
这里写图片描述

四、关联关系

关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。在UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。
这里写图片描述

五、聚合关系

聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如计算机与CPU、公司与员工的关系等,比如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。
这里写图片描述

六、组合关系

组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如人和人的大脑。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在UML类图设计中,组合关系以实心菱形加实线箭头表示。
这里写图片描述

七、总结

对于继承、实现这两种关系没多少疑问,它们体现的是一种类和类、或者类与接口间的纵向关系。其他的四种关系体现的是类和类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准确定位是很难的。前面也提到,这四种关系都是语义级别的,所以从代码层面并不能完全区分各种关系,但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖。

转载自:http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html

相关文章推荐

UML中类之间的几种关系

类之间可能存在以下几种关系:关联(association)、依赖(dependency)、聚合(Aggregation,也有的称聚集)、组合(Composition)、泛化(generalizatio...

UML中类之间的几种关系

UML中类之间的几种关系   (2012-04-15 17:35:29) 转载▼ 标签:  类关系   it 分类: 技术文章 ...

3. 类与类之间的有哪几种关系,并说明

类与类之间的有哪几种关系,并说明 类与类之间的关系分为: 1.关联关系 单向关联 双向关联 自身关联 多维关联(N-ary Association) 2、泛化(Generalizat...

类与类之间的有哪几种关系,并说明

类与类之间的有哪几种关系,并说明 关联(Association) 两个相对独立的对象,当一个对象的实例与另外一个对象的特定实例存在固定关系时,这两个对象之间就存在关联关系。 1、单向关联 A1...

类与类之间的有哪几种关系,并说明

总体来说类与类之间分为:泛化、实现、关联、聚合、依赖五大关系。 一、继承即泛化 在面向对象的设计中一个非常重要的概念,继承,指的是一个类(子类)继承另外的一个类(超类)的同一功能,并增加它自己的新...
  • hxw_506
  • hxw_506
  • 2011年12月23日 21:57
  • 1314

类与类之间的几种关系

一、继承关系      继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一...
  • zhuiqi
  • zhuiqi
  • 2014年05月21日 20:46
  • 543

UML中类之间的几种关系,关联(association),聚合(Aggregation),组合(Composition)

UML中类之间的几种关系   (2012-04-15 17:35:29) http://blog.sina.com.cn/s/blog_59ca2c2a01012ido.html 转载▼ ...
  • Rodulf
  • Rodulf
  • 2016年01月19日 21:10
  • 1279

UML里类之间的几种关系

UML类图:类图时锻炼OOA(OO analysis)和OOD(OO design)思想的重要工具,有助于OOA、OOD思想的提升。 重点:理解类图中类与类之间的关系的关系以及这种关系在代码中的实现形...

类与类之间的几种关系(继承、实现、依赖、关联、聚合、组合)

聚集(Aggregation)是一种特殊形式的关联。聚集表示类之间的关系是整体与部分的关系。一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,这是聚集的一个例子。在需求分析中,"包含"、"组成"...
  • iw1210
  • iw1210
  • 2014年06月02日 10:49
  • 1900

【UML】类与类之间的几种关系

所谓“一张图胜过千言万语”,那就用一张思维导图来展现一下本文章的内容: 【关联】 关联分为普通关联(association)、聚合(aggregation)、组合(composition)。 普...
  • qsbbl
  • qsbbl
  • 2017年03月15日 17:21
  • 803
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中类与类之间的几种关系
举报原因:
原因补充:

(最多只允许输入30个字)