前言:
当前大家对“java接口与类的区别”大约比较珍视,我们都想要学习一些“java接口与类的区别”的相关知识。那么小编同时在网络上汇集了一些有关“java接口与类的区别””的相关文章,希望同学们能喜欢,各位老铁们快快来学习一下吧!1.概述
海纳百川,有容乃大。世间万物皆有联系,又比如,“随风潜入夜,润物细无声”,描述的是春风、细雨与万物之间的联系。
在Java的世界里,类与类之间又有着怎样的关系呢?
在Java中,类与类之间主要有6种关系,分别是:依赖、关联、聚合、组合、继承、实现,并且耦合度依次增强。
2.依赖关系
依赖关系在Java中的表现就是:类A的对象使用类B的对象,其中类B的对象作为类A的方法参数、局部变量,或者直接在类A中调用类B的静态方法。
【箭头及指向】:在UML类图中,以虚线箭头表示,箭头指向被依赖的类。
代码示例:
public class Computer { // Mouse作为Computer中move方法的形参,建立起依赖关系 public void move(Mouse mouse) { mouse.move(); } } public class Mouse { public void move() { } }3.关联关系
关联关系分为单向关联与双向关联,在Java中的表现是:一个类中包含有另一个类。
单向关联:类A中包含有类B。
双向关联:类A中包含有类B,类B中包含有类A。
【箭头及指向】:在UML类图中,以实线箭头表示,箭头指向被关联的类。
单向关联示例代码:
public class Computer { private SdCard sdCard; } public class SdCard { }4.聚合关系
从定义上来看,聚合关系是关联关系的一种,也是一个类中包含有另一个类,但是聚合关系强调的是“整体-个体”之间的相互关系,例如计算机与硬盘之间的关系,计算机作为一个整体,包含有硬盘,但是硬盘可以脱离计算机这个整体而单独存在。
【箭头及指向】:在UML类图中,以带空心菱形的实线表示,菱形指向整体。
代码示例:
public class Computer { private Disk disk; // 聚合关系,通常使用setter方法来维护其成员变量值 public void setDisk(Disk disk) { this.disk = disk; } } public class Disk { }5.组合关系
从定义上来看,组合关系是关联关系的一种,也是一个类中包含有另一个类,但是组合关系强调的是“整体-部分”之间的共存亡关系,整体与部分具有相同的生命周期,部分不能与脱离整体而单独存在,有种唇亡齿寒的感觉哈。
【箭头及指向】:在UML类图中,以带实心菱形的实线表示,菱形指向整体。
代码示例:
public class Computer { private Cpu cpu; // 组合关系,通常使用构造方法来维护其成员变量值 public Computer(Cpu cpu) { this.cpu = cpu; } } public class Cpu { }6.继承关系
继承关系在Java表示的类与类(接口与接口)之间的父子关系,表示子类在具有父类特性的同时,还具有自己独特的特性。在Java中,用extends关键字表示继承关系。
【箭头及指向】:在UML类图中,以带三角箭头的实线表示,箭头指向父类。
示例代码:
public class Computer { } // 继承关系 public class PersonalComputer extends Computer{ }7.实现关系
实现关系在Java中表现的是类与接口之间的关系,接口中定义了抽象的特性,类则是该接口特性的具体实现。
【箭头及指向】:在UML类图中,以带三角箭头的虚线表示,箭头指向接口。
示例代码:
// 实现关系 public class Computer implements Calculate{ } public interface Calculate { }8.耦合度
这几种类与类之间的关系,耦合度也是依次增强的:依赖 < 关联 < 聚合 < 组合 < 继承 < 实现。
标签: #java接口与类的区别