UML中"接口继承接口"关系是什么样子的?

29

在Java中,接口可以合法地扩展一个接口。在UML中,这种关系是“扩展”关系(实线、关闭、未填充箭头)还是“实现”关系(虚线、关闭、未填充箭头)?我似乎找不到在线或者Fowler的书中有关这种关系的例子。

1个回答

41
使用“extends”(实线、闭合、未填充箭头),这与Java使用"extends"和"implements"关键字的方式一致。
  • "extends" == UML泛化/特化关系
  • "implements" == UML实现关系
子接口是超级接口的特化,而不是实现。
请参阅http://www.informit.com/articles/article.aspx?p=29224&seqNum=2

Example of interfaces extending interfaces.


5
呵呵,多漂亮的钻石啊 :) - Gabriel Ščerbák
@Gabriel - 嘿嘿 - 这是一个不错的图表。我希望我能为它负责,但它来自参考文章,所以要感谢Stephen R. Palmer。 - Bert F
4
@Bert F 我试图暗示钻石继承问题 :) - Gabriel Ščerbák
@Gabriel - 哈哈 - 我有点儿迟钝。但这不适用于Java接口,对吧? - Bert F
关于钻石问题(或其衍生问题),如果接口A包含方法void someMethod(),而接口B包含方法String someMethod(),那么就会触发噢唷时刻。请注意,问题在于返回类型;如果返回类型也相同,则一切都好。 - Daniel
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接