Merge UML2.5:包合并中相同名称但不同类型的属性会发生什么情况?

Merge UML2.5:包合并中相同名称但不同类型的属性会发生什么情况?,merge,package,uml,Merge,Package,Uml,我在官方文件()中找不到答案。当我合并两个包含同名类的包时会发生什么情况?这些类包含同名但类型不同的属性。我们还假设这些属性有自己的setter方法 UML图: UML(2.5)提到了包合并(§12.2.3.3通用包合并规则,第242页) 匹配类型的元素(例如属性、参数)必须具有 一致类型。对于类或数据类型的类型 一致类型是相同类型或通用超类型。总的来说 在其他情况下,一致性意味着类型必须相同 因此,由于uniqueIDInteger的类型不同,或者是String的子类型,因此包合并无效 操作s

我在官方文件()中找不到答案。当我合并两个包含同名类的包时会发生什么情况?这些类包含同名但类型不同的属性。我们还假设这些属性有自己的setter方法

UML图:

UML(2.5)提到了包合并(§12.2.3.3通用包合并规则,第242页)

匹配类型的元素(例如属性、参数)必须具有 一致类型。对于类或数据类型的类型 一致类型是相同类型或通用超类型。总的来说 在其他情况下,一致性意味着类型必须相同

因此,由于
uniqueID
Integer的类型不同,或者是String的子类型,因此包合并无效


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

包合并无效,因为uniqueID(Integer和String)的类型不同,一个不是另一个的子类型,并且没有任何其他类型的两个类型都是子类型。请注意,引起问题的只是属性uniqueID。setUniqueID操作与类型化元素不匹配,因为它们的参数类型不匹配(见12.2.3.8)。如果没有uniqueID属性,合并将成功,结果是一个类包含两个操作。您是对的。我在答案中增加了一些细节。