重写 uml 中的方法

Kat*_*ate 8 uml

我正在尝试创建 UML 图。例如,我有一个带有方法 a() 的类 A 和一个扩展 A 并重写方法 a() 的类 B。UML 中是否有任何标准来指示重写方法?

Gee*_*ens 10

不,对于覆盖父类上的操作的操作没有特定的指示符。
如果签名匹配,它将覆盖父级上的操作。

在此输入图像描述


bru*_*uno 5

正如该答案/sf/answers/2025273771/中所示,有一个特定的指示符来指示成员(例如操作)被继承,但该指示符不是强制性的,规范说:

\n\n
\n

由分类器 继承的成员可以通过在未继承该成员时将显示的文本表示形式前面添加插入符号 \xe2\x80\x99^\xe2\x80\x99 符号来显示在该分类器的图表上

\n
\n\n

所以,有:

\n\n

在此输入图像描述

\n\n

B 不覆盖oper

\n\n

但有:

\n\n

在此输入图像描述

\n\n

我们无法知道,除非我们确定 ^ 始终在模型中使用,如上图所示

\n\n

[编辑]

\n\n

请注意,规范在该句子中使用了两次单词member(而不是property),并且Class继承(间接)Classifier,因此适用于操作。

\n\n

正如在另一个答案中注意到的那样,规范也说:

\n\n
\n

继承的成员可能以较浅的颜色显示,以帮助将它们与非继承的**成员*区分开来。

\n
\n\n

因此,再次两次使用成员而不是属性,并且他们使用的事实清楚地引用了事实,即还有另一种方式,即^。所以两个一致的句子表示 ^ 适用于运算

\n\n

[警告]

\n\n

我用的是BoUML制作图表,在第一个图表中您可以看到“^oper()”,但我“作弊”地将相应的操作命名为“^oper”,没有选项在图表中显示 ^指示操作或其他成员被继承

\n