Inheritance UML-同时进行组合和继承

Inheritance UML-同时进行组合和继承,inheritance,uml,composition,Inheritance,Uml,Composition,我正在为其他人的代码创建UML图,我遇到了一些奇怪的事情——一个子类有一个父类作为其成员变量之一,看起来既有“has a”关系,也有“is a”关系。显然,这是有意的,但即使在浏览了UML指南之后,我仍然不知道如何表示这一点。我是否只表现出继承,更牢固的关系?我是否覆盖箭头,创建一个实心白色箭头,并在箭头上画一条线 使用Java中替换的类名: public abstract class A { } public abstract class B extends A { protecte

我正在为其他人的代码创建UML图,我遇到了一些奇怪的事情——一个子类有一个父类作为其成员变量之一,看起来既有“has a”关系,也有“is a”关系。显然,这是有意的,但即使在浏览了UML指南之后,我仍然不知道如何表示这一点。我是否只表现出继承,更牢固的关系?我是否覆盖箭头,创建一个实心白色箭头,并在箭头上画一条线

使用Java中替换的类名:

public abstract class A {
}

public abstract class B extends A {
    protected A a;
}

我将如何表示这一点?

您有两个不同的关系,所以您只需将它们都显示出来即可

仅从代码来看,没有证据表明B和A之间的
关联
也是一种
组合
,因此我将其保留为普通关联。
这里有几个问题可以很好地解释联想和作文之间的差异。


两个类名都是斜体的事实表明它们都声明为抽象的

您可能也想显示角色。并指示使用斜体。也许可以链接到“作文”答案。。。