您的位置:首页 > 其它

类与类之间的关系--泛化,关联,依赖,实现

2017-04-18 15:38 330 查看
类,对象是面向对象的基础,类与类之间的关系是面向对象不可或缺的一部分。以下将从类的关系定义,UML中的符号表示,代码实现三方面介绍类与类之间的关系。

1、泛化(Generalization):也成为继承关系。

指一个类(子类或者子接口)继承另外一个类(父类或者父接口)的功能。

并能够添加自己的功能。在程序程序中用keywordextends明白标识,在UML设计中用空三角和实线表示。从子类指向父类。或者子接口指向父接口。

如图


代码:

public class Cat {

public Cat(){

}

public void Eat(){

}

public void Run(){

}

public void Walk(){

}

}
子类演示样例
public class WhiteCat extends Cat {

public WhiteCat(){

}

public void Eat(){

}

public void Run(){

}

public void Walk(){

}

}


2、实现(Realize) 是指 一个class 实现interface接口的功能,用keywordimplements标识。在UML设计中用一条带空心箭头的虚线表示,箭头指向接口。

如图


代码:

public interface Iaction {

public void drink();

public void eat();

}
public class dog implements Iaction {

public dog(){

}

public void finalize() throws Throwable {

}

public void drink(){

}

public void eat(){

}

}

3、依赖(Dependency)是指一个类A使用到了还有一个类B,而这样的使用关系是具有偶然性、暂时性。

可是类B的变化会影响到类A。表如今代码层面,为类B作为參数被类A在某个方法中使用。在UML类图设计中用由类A指向类B的带箭头虚线表示。

如图


4、关联关系 关联体现的是两个类之间语义级别的一种强依赖关系,比方我和我的朋友,这样的关系比依赖更强、不存在依赖关系的偶然性、关系也不是暂时性的。通常是长期性的。并且两方关系通常是平等的。

关联能够单向的也能够是双向的。表如今代码层面,为被关联类B以类的属性形式出如今关联类A中,也可能是关联类A引用了一个类型为关联类B的全局变量。在UML类图设计中。关联关系用有关联类A指向被关联类B的带箭头实线表示。在关联的两端能够标注关联两方的角色和多重性标记。

如图


5、聚合关系(Aggregate)是关联关系的一种,表示总体与部分的关系是has- a的关系。总体和部分是可分离的他们能够具有各自的生命周期。部分能够属于多个总体对象,也能够为多个总体对象共享。比方汽车和轮胎。表如今代码层和关联关系是一致的。仅仅能从语义级别区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。

如图


6、组合(Compose)也是关联关系的一种特例,它体现的是一中is-a 的关系,这样的关系比聚合更强,它所表示的总体与部分的关系是不可分的。

总体的生命周期结束部分的生命周期也结束。

如人和人的大脑。在UML设计中用实心的菱形和实现箭头表示。

如图


上述的六种关系非常easy,在应用中easy混淆的就是箭头所指的方向,当中泛化和实现指向抽象类。

依赖和关联指向属性类或者子类。此类总结网上非常多。为了学习最好自己实际动手画画。

会有精彩等着你。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: