上一篇介绍了下类与类之间的关联关系。关联关系的种类比较多,所以单独写了一篇。这篇文章主要介绍:依赖关系、泛化关系、接口与实现类关系。
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() {
……
}
}