Mik*_*019 3 java uml interface implements
Java-API 告诉我特定类实现了哪些接口。但有两种不同类型的信息,我不太确定这意味着什么。例如,对于“TreeSet”类:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeSet.html有以下信息:
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, Set<E>, SortedSet<E>
Run Code Online (Sandbox Code Playgroud)
并且:
public class TreeSet<E>
extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, Serializable
Run Code Online (Sandbox Code Playgroud)
现在,“实现”下列出的接口比“所有实现的接口”下列出的接口少。这意味着什么?
更进一步:假设我想绘制一个 UML 图,它指定 Treeset 与 Set 和 Collection 之间的关系。我假设 Treeset 实现了 Set 和 Collection (因为 API 是这么说的,但它没有列在实现下,这让我有点困惑......?)。但同时 Set 也是 Collection 的子接口。那么,绘制一个箭头来指示两个接口之间的关系就足够了,而不是用一个箭头来指示 TreeSet 实现 Set(但没有指向 Collection 的箭头),还是我需要绘制一个箭头来指示 TreeSet 也实现 Collection 呢?
对不起我的英语不好。我希望我能让我的问题被理解。
implements列出了直接实现的接口,这些接口是在implements子句中显式指定的接口。
所有实现的接口的列表可能会更长,因为该类直接实现的接口可以扩展该类间接实现的其他接口。
TreeSet直接实现NavigableSet,但由于NavigableSetextends SortedSet、which extends Set、which extends Collection、which extends Iterable
,所有这些接口都是由 间接实现的TreeSet,这就是为什么它们被列在所有已实现接口的列表中。
至于 UML 图,我会画一个箭头,指示仅在类和它直接实现的接口之间“实现”。间接实现的接口将显示在直接实现的接口的层次结构中。
例如:
Iterable
^
|
Collection
^
|
Set
^
|
SortedSet
^
|
NavigableSet
^
|
TreeSet
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |