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里类之间的几种关系

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

Java类与类之间的5种关系及uml表示

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

Java系列-类与类之间的六种关系

类与类之间的关系 一、继承关系      继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extend...
  • Dream_angel_Z
  • Dream_angel_Z
  • 2015年03月28日 21:47
  • 1461

java中的面向对象和类之间的关系

1、面向对象    a、分析问题中需要用到哪些类以及对象    b、分析以上类中或对象中应该具有哪些属性及方法    c、分析类之间的关系    (合适的方法应该出现在合适的类中)   2、...
  • zhanghaobin1991
  • zhanghaobin1991
  • 2016年05月10日 09:02
  • 1097

Java类和类之间关系

类和类之间关系包括了 is a,has a, use a三种关系 is a包括了 继承,实现关系 has a包括了 组合,聚合,关联关系 use a包括了 依赖关系 继承:子是父的关系,狗是动物 [...
  • msyqmsyq
  • msyqmsyq
  • 2016年08月31日 22:48
  • 993

JAVA面向对象-----接口与类、接口之间的关系

接口与类、接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系。非抽象类实现接口时,必须把接口里面的所有方...
  • duruiqi_fx
  • duruiqi_fx
  • 2016年07月24日 01:28
  • 9899

类与类,类与接口,接口与接口的关系

类与类,类与接口,接口与接口的关系 a:类与类 *继承关系,只能单继承,可以多层继承 b:类与接口 *实现关系,可以单实现,也可以多实现 *并且还可以在继承一个类的同时实现多个接口 ...
  • uotail
  • uotail
  • 2017年05月03日 22:17
  • 418

Java中类与类之间的关系

类与类之间的关系: 1、泛化 (Generalization) 2、实现关系 (Realization) 3、依赖(Dependency) 4、关联 (Association) 5、聚合 (Aggre...
  • u013038616
  • u013038616
  • 2014年10月14日 14:50
  • 598

面向对象--类与类之间的几种关系

原文地址:http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html 一、继承关系      继承指的是一个类(称为...
  • zlQQhs
  • zlQQhs
  • 2015年01月16日 13:33
  • 2775

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

类与类之间的有哪几种关系,并说明 类与类之间的关系分为: 1.关联关系 单向关联 双向关联 自身关联 多维关联(N-ary Association) 2、泛化(Generalizat...
  • liangkang514
  • liangkang514
  • 2011年12月25日 16:35
  • 5135
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中类与类之间的几种关系
举报原因:
原因补充:

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