上一篇介绍了下类与类之间的关联关系。关联关系的种类比较多,所以单独写了一篇。这篇文章主要介绍:依赖关系、泛化关系、接口与实现类关系。
1.依赖关系
依赖关系值一个类的实现依赖另一个类。如,Driver类的drive方法依赖于Car类中的move()方法。
注意依赖关系与关联关系的区别:关联关系中一个类作为另一个类的属性存在,而依赖关系的属性中不存在另一个类。
依赖关系的UML图用带箭头的虚线表示。
依赖关系的代码实现通常有一下三种:
(1)将一个类的对象作为另一个类方法的参数
(2)将一个类的对象作为另一个类方法的局部变量
(3)在一个类的中调用另一个类的静态方法
- public class Driver {
- public void drive(Car car) {
- car.move();
- }
- ……
- }
- public class Car {
- public void move() {
- ......
- }
- ……
- }
2.泛化关系
泛化关系又叫继承关系。用来描述父类和子类之间的继承关系。泛化关系在UML中用带空心三角形的实线表示。
代码实现:
- //父类
- public class Person {
- protected String name;
- protected int age;
- public void move() {
- ……
- }
- public void say() {
- ……
- }
- }
- //子类
- public class Student extends Person {
- private String studentNo;
- public void study() {
- ……
- }
- }
- //子类
- public class Teacher extends Person {
- private String teacherNo;
- public void teach() {
- ……
- }
- }
3.接口与实现类关系
在Java语言中使用interface来声明接口。接口通常没有属性,而且方法都是抽象方法,只有方法的声明,没有方法的实现。
实现关系(Realization)在UML中使用带空心三角形的虚线表示。
实现代码如下:
- public interface Vehicle {
- public void move();
- }
- public class Ship implements Vehicle {
- public void move() {
- ……
- }
- }
- public class Car implements Vehicle {
- public void move() {
- ……
- }
- }