UML 2.5:包合并中具有相同名称但不同类型的属性会发生什么?

时间:2019-05-24 05:54:48

标签: merge package uml

我在官方文档(https://www.omg.org/spec/UML/2.5.1/)中找不到答案。当我合并两个包含相同名称的类的包时会发生什么,这些包包含相同名称但类型不同的属性。我们还假设这些属性具有自己的setter方法。

UML图:

https://i.imgur.com/U3WreC3.jpg

1 个答案:

答案 0 :(得分:4)

UML(2.5)关于程序包合并(第12.2.3.3节“常规程序包合并规则”,第242页)

  

匹配类型化元素(例如,属性,参数)必须具有   符合类型。对于类或数据类型的类型,   一致性类型可以是相同类型,也可以是公共超类型。对所有人   在其他情况下,一致性意味着类型必须相同。

因此,由于uniqueID Integer 的类型不同或 String 的子类型,因此您的程序包合并无效。

操作setUniqueID(Integer)没问题,因为两个操作setUniqueID(Integer)setUniqueID(String)可以作为重载操作共存。