在java中,类之间有各种各样的关系,比如继承、实现、依赖、关联、聚合和组合。特别是关联、聚合、组合之间有点混淆。,通过这篇文章,我们将带领大家彻底把握它们之间的区别和联系。

1.遗产

继承是面向对象比较显著的特征。继承是从现有的类(父类和父接口)中派生出新的类(子类和子接口)。新的类可以吸收现有类的数据属性和行为,并扩展新的功能。在java中,这种关系由关键字extends明确标识。

比如你可以先定义一个叫animal的类,然后定义一个子类bird,它拥有其父animal的所有属性和行为,也可以扩展自己特有的属性和行为。

继承关系一般用空心箭头的实线表示,用uml图表示如下:

2.实现

实现是类和接口之间比较常见的关系。指一个类实现接口的功能(一个类可以实现多个接口)。在java中,这种关系由关键字implements明确标识。

比如定义一个接口fly(就是飞行的意思),然后定义一个bird类来实现接口。一般用空心箭头的虚线表示实现关系,在uml中表示如下:

3.依赖

依赖是指一个类对另一个类的依赖。这种关系很脆弱,很短暂。依赖在java语言中体现为局部变量、方法的形式参数或对静态方法的调用。

比如employee类中有一个叫takemoney(bank bank)的方法,这个方法的参数中使用了bank类。此时可以说,employee类依赖于bank类,如果bank类发生变化,会影响employee类。

一般依赖关系用指向依赖物的虚线表示,依赖关系用uml图表示如下:

4.联合

关联是类之间的联系,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的,是一种依赖性更强的关系。

在java语言中,关联关系一般表现为关联类b以类属性的形式出现在关联类a中,或者关联类a指的是关联类b的类型的全局变量;

一般两个相关的类用实线连接,用uml图表示如下:

5.聚合

聚合是一种特殊的关联,是一种强关联,强调整体与部分的关系,不能从语法上区分,只能从语义上区分。

比如鹅和鹅的关系,学校和学生的关系。生命周期中聚合的整体和部分没有必然联系。有些对象可以在整个对象创建之前创建,也可以在整个对象销毁之后销毁。

一般用空心菱形的实线表示(整体的一端),用uml图表示如下:

6.结合

组合也是联想的特例,比聚合更强。它强调整体与部分的生命周期是一致的,但在生命周期中整体与部分的聚合并没有必然的联系。

在组合关系中,整体和部分是不可分割的,整个生命周期的结束意味着部分生命周期的结束。比如鹅和鹅的翅膀结合在一起。

一般用实心菱形的实线表示(整体的一端)。uml图如下:

总结:继承和实现这两种关系很简单,体现了一个类和一个类之间,或者一个类和一个接口之间的垂直关系;另外四种关系反映了类之间或者类与接口之间的引用和水平关系。

总的来说,这几种关系所表现的强弱程度依次为:组合聚合关联依赖

关联销售

华为健康秤可以和ios的健康 关联么

这种秤居然要装独立的app,简直不可思议,不能绑定华为健康和华为运动app。

邦先生晒衣架和小米app关联有什么好处

可以用手机或者小米音箱控制,但是音箱不能控制关灯,其他功能都可以

米其林汽车打气筒跟米其林轮胎有什么关联

我觉得是大品牌,值得信赖,就买了。好像很划算。便宜又小。放在车里备用就好。

华为健康秤可以和iphone 的健康关联吗怎么弄。

对,我的是苹果手机,微信扫描框后面第二个二维码,然后在那里设置添加家人称重

华为健康秤关联的app叫什么名字

华为运动健康,我手机是华为的,所以买的时候带了华为健康秤软件