https://blog.csdn.net/qq_41638851/article/details/104610834
https://blog.csdn.net/mike_caoyong/article/details/42563867
泛化[继承]关系(Generalization)
泛化关系(Generalization):A是B和C的父类,B,C具有公共类(父类)A,说明A是B,C的一般化(概括,也称泛化)
- 泛化关系(Generalization) 也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。 在UML中,泛 化关系用带空心三角形的直线来表示。
- 在代码实现时,使用面向对象的继承机制来实现泛化关系,如在 Java 语言中使用 extends 关键字、在 C++/C# 中使用冒号“:”来实现。
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()
{
……
}
}
在UML当中,对泛化关系有三个要求:
1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;
2、子类中除了与父类一致的信息以外,还包括额外的信息;
3、可以使用父类的实例的地方,也可以使用子类的实例;
实现关系
Realization与Interface Realization 不知道这两个的区别是什么
实现关系(Realization)是类实现了接口,类中的操作实现了接口中所声明的操作。在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。
Assocaition和DirectedAssocaition:
- 关联关系是用一条直线表示的,它描述不同类的对象之间的结构关系,它是一种静态关系,通常与运行状态无关,一般由常识等因素决定的。它是一种“强联“的关系.关联关系默认不强调方向,表示对象间相互知道,如果特别强调方向,则使用箭头。
- 关联关系(Association):类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单。比如说:消费者&生产者与产品的关系
class Clert {
private int product; // 属性:产品数量
}
class Productor implements Runnable{
private Clert clert; //
public Productor(Clert clert) {
this.clert = clert;
}
}
class Comsumer implements Runnable{
private Clert clert; //
public Comsumer(Clert clert) {
this.clert = clert;
}
}