gpt4 book ai didi

java - Java API中 "implements"和 "All Implemented Interfaces"之间的区别

转载 作者:行者123 更新时间:2023-12-02 19:32:13 34 4
gpt4 key购买 nike

Java-API 告诉我特定类实现了哪些接口(interface)。但有两种不同类型的信息,我不太确定这意味着什么。例如,对于“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>

还有:

public class TreeSet<E>
extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, Serializable

现在,“实现”下列出的接口(interface)比“所有实现的接口(interface)”下列出的接口(interface)少。这是什么意思?

进一步:假设我想绘制一个 UML 图,它指定 Treeset 与 Set 和 Collection 之间的关系。我假设 Treeset 实现了 Set 和 Collection (因为 API 是这么说的,但它没有列在实现下,这让我有点困惑......?)。但同时 Set 也是 Collection 的子接口(interface)。那么,绘制一个指示两个接口(interface)之间关系的箭头就足够了,并且用一个箭头来指示 TreeSet 实现 Set(但没有指向 Collection 的箭头),还是我需要绘制一个箭头来指示 TreeSet 也实现 Collection?

抱歉我的英语不好。我希望我的问题能让人理解。

最佳答案

implements列出了直接实现的接口(interface),这些接口(interface)是在implements子句中明确指定的接口(interface)。

所有已实现接口(interface)的列表可能会更长,因为该类直接实现的接口(interface)可以扩展该类间接实现的其他接口(interface)。

TreeSet 直接实现 NavigableSet,但由于 NavigableSet 扩展了 SortedSet,后者扩展了 Set,它扩展了 Collection,它扩展了 Iterable,所有这些接口(interface)都是由 TreeSet 间接实现的,这就是它们列在所有已实现接口(interface)列表中的原因。

对于 UML 图,我会画一个箭头,指示仅在类和它直接实现的接口(interface)之间“实现”。间接实现的接口(interface)将显示在直接实现的接口(interface)的层次结构中。

例如:

Iterable
^
|
Collection
^
|
Set
^
|
SortedSet
^
|
NavigableSet
^
|
TreeSet

关于java - Java API中 "implements"和 "All Implemented Interfaces"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56526315/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com