在UML中表示重载的方法

时间:2008-12-01 00:35:12

标签: java uml overloading

我正在尝试创建一个代表某些Java代码的UML图。

在课堂上我有一个重载的方法。

据我所知,UML图中没有显示方法的参数。

如何在UML中表示方法重载?

感谢。

5 个答案:

答案 0 :(得分:3)

在子类中,您指定的方法与您要覆盖的方法具有相同的签名,并为方法添加注释{redefines}。例如:

+doSomething(p:AThing):int{redefines}

这意味着doSomething()方法会覆盖超类中的方法。是的,方法的参数显示在图表上。如示例中的p是AThing类型的paremeter。

答案 1 :(得分:3)

在谈论重载时 - 例如在你的类中,你有更多的方法具有相同的名称但不同的签名(参数,可能返回值取决于目标语言...),你应该提供签名。 UML没有指定您不能拥有方法参数。

答案 2 :(得分:2)

检查整个图表或单个类/接口的显示选项。大多数UML工具都有显示选项的选项,显示方法的参数列表。

答案 3 :(得分:2)

你没有说你的工具和UML图(我认为是类图),但你有两种方法:

  1. 你可以写一个关于这种方法的说明;
  2. 您可以使用关键字构造型写作<< 重载>>在这种方法中;

答案 4 :(得分:0)

鉴于某个问题,上述大多数答案都是正确的。 Alepuzio,Vincent和bmatthews68都有在上下文中有意义的答案。

**如果问题在于覆盖具有相同签名的超类方法而不是重新定义是正确的定义。如果它是重载,你创建了相同的方法,它采用不同的参数,那么我不相信这是可能的结构模型,你可以用序列图显示这个例子是行为,但仍然不是真的。

所以+ doSomething(p:AThing):int {redefines}是正确的,这是Vincent所说的。

**如果你的问题/问题只是在图表中没有直观显示的参数,这通常是大多数UML工具中的设置。

**如果您想更清楚地了解自己在做什么,请使用关键字<>,同时注意关键字不是刻板印象,因为它不是元模型的一部分。