uml中的覆盖方法
我正在尝试创建UML图。例如,我有一个包含方法a()的类a和扩展方法a并重写方法a()的类B。是否有任何标准来指示UML中被重写的方法 否,对于重写父类上的操作的操作,没有特定的指示符。uml中的覆盖方法,uml,Uml,我正在尝试创建UML图。例如,我有一个包含方法a()的类a和扩展方法a并重写方法a()的类B。是否有任何标准来指示UML中被重写的方法 否,对于重写父类上的操作的操作,没有特定的指示符。 如果签名匹配,它将覆盖父项上的操作 如该答案所示,有一个特定的指标表明成员(例如操作)是继承的,但该指标不是强制性的,规范规定: 分类器继承的成员可以通过在文本表示前面加上插入符号“^”来显示在该分类器的图表上,如果该成员未继承,则会显示该文本表示 因此,有: B不覆盖操作 但有: 我们无法知道,除非我们确
如果签名匹配,它将覆盖父项上的操作
如该答案所示,有一个特定的指标表明成员(例如操作)是继承的,但该指标不是强制性的,规范规定: 分类器继承的成员可以通过在文本表示前面加上插入符号“^”来显示在该分类器的图表上,如果该成员未继承,则会显示该文本表示 因此,有: B不覆盖操作 但有: 我们无法知道,除非我们确定模型中始终使用“^”,如上图所示 [编辑] 请注意,规范在该语句中使用两倍于单词member(而不是properties)的词,并且类继承(间接)分类器,因此这适用于操作 正如在另一个答案中所注意到的,规范还说: 继承的成员也可能以较浅的颜色显示,以帮助区分它们与非继承的**成员* 同样,两次使用成员而不是属性,它们使用的事实也清楚地说明了另一种方式,即^。所以两个一致的句子表示^适用于运算 [警告]
我曾经制作图表,第一次你可以看到“^oper()”,但我“欺骗”了你,在命名相应的操作“^oper”时,没有选项在图表中显示“^”,以指示操作或其他成员被继承。101: 继承的成员也可能以较浅的颜色显示,以帮助区分它们与非继承的成员。一致性实现不需要提供此选项 遗憾的是,我的工具(EA)不支持这一点 最简单的方法是只复制要重写的操作的操作签名。这将清楚地表明你在逃避某些事情 仅通过查看
Class2
无法判断b
实际上是一个覆盖。然而,如果有人想处理Class2
,他必须知道它是一个子类,从而知道b
是一个覆盖
注意:UML2.5规范对于插入符号的使用是模棱两可的。而(第100页)他们说 由分类器继承的成员可以通过在插入符号“^”前加上前缀显示在该分类器的图表上 下面的语法明确地提到了属性和连接器以及本文 类似的符号可用于所有继承了分类器成员的名称删除,以表明它们是继承的
事实上,一个UML操作可以重新定义另一个操作。我暂时结束了这个问题,因为我认为这是一个重复的操作,但这个是关于操作的。不,UML没有本地的方式来表示操作。我认为那句话中的“可能”表示显示继承的成员是可选的。我相信,如果你给他们看,插入符号是强制性的。@GeertBellekens不,对我来说,“ma'y concerns”可以通过在文本表示中加上插入符号“^”来显示在该分类器的图表上,而不仅仅是“显示在该分类器的图表上”。如果我没有错的话,我会在规范的其他地方看到,^没有被使用。我在我的答案中添加了一些关于UML模糊性的文本。让我们就这样吧,喝杯咖啡;-)(删除我的评论)