Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
区别于;实施;及;所有实现的接口”;在JavaAPI中_Java_Interface_Uml_Implements - Fatal编程技术网

区别于;实施;及;所有实现的接口”;在JavaAPI中

区别于;实施;及;所有实现的接口”;在JavaAPI中,java,interface,uml,implements,Java,Interface,Uml,Implements,JavaAPI告诉我特定类实现了哪些接口。 但是有两种不同类型的信息,我不太确定这意味着什么。例如,“TreeSet”类:有以下信息: All Implemented Interfaces: Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, Set<E>, SortedSet<E> 所有实现的接口: 可序列化、可克隆、可移植、集合、导航

JavaAPI告诉我特定类实现了哪些接口。 但是有两种不同类型的信息,我不太确定这意味着什么。例如,“TreeSet”类:有以下信息:

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
公共类树集
扩展抽象集
实现NavigableSet、可克隆、可序列化
现在,在“实现”下列出的接口比在“所有实现的接口”下列出的接口要少。这是什么意思

此外:假设我想画一个UML图,它指定Treeset和Set以及Collection之间的关系。我假设Treeset实现了Set和Collection(因为API这么说,但它没有列在implements下面,这让我有点困惑…?)。但同时集合也是集合的子接口。那么,画一个箭头表示两个接口之间的关系,画一个箭头表示TreeSet实现了Set(但没有指向Collection的箭头)就足够了吗?还是我需要画一个箭头表示TreeSet也实现了Collection


对不起我的英语。我希望我的问题可以理解。

所有实现的接口”列表告诉您类直接实现的接口,以及这些接口派生的所有接口。因此,例如,
NavigableSet
是从
Set
派生出来的
TreeSet
不直接实现
Set
,但是
Set
是通过以下事实实现的:任何实现
NavigableSet
的人也实现
Set

实现
列出了直接实现的接口,哪些是
实现
子句中明确指定的接口`

所有实现的接口的列表可以更长,因为类直接实现的接口可以扩展类间接实现的其他接口

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

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

例如:

Iterable
  ^
  |
Collection
  ^
  |
 Set
  ^
  |
SortedSet
  ^
  |
NavigableSet
  ^
  |
TreeSet
“所有实现的接口”包括那些由超类实现或由实现的接口(直接或不直接)扩展的接口

下面是Eclipse的类型层次结构给出的视图,它向您显示了其他接口的添加位置:

“所有实现的接口”列表只是TreeSet类内部实现的接口列表。 您总是可以通过在IDE(Eclipse、STS等)中打开源代码来验证这一点,如果您使用的是EclipseIDE,我建议您在IDE中打开TreeSet接口并验证这一点

public class TreeSet<E> extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, java.io.Serializable
{}
公共类树集扩展了抽象集
实现NavigableSet、Cloneable、java.io.Serializable
{}

您不会在TreeSet和Collection之间绘制箭头;这是从集合是一个集合这一事实推断出来的。