java.nio.Path的方法如何工作

Sac*_*mar 0 java oracle java-8

我已经nio.2Java文档开始在Java 8中进行研究。当我研究时java.nio.file.Path,java文档的第一行是

在Java SE 7发行版中引入的Path类。

这意味着Path是一堂课,但是当我看这里时,我发现那Path是一门课interface

那么,为什么Java文档说它是一个类。

我的另一个疑问是,如果Pathinterface那么如何Path方法(如getRoot() isAbsolute()和所有其他)的工作,因为没有的方法实现Path接口。

我知道在一个陈述中问两个不同的问题很麻烦,但我不知道如何将这两个问题分开。

编辑:这个问题不能被复制的这个,因为在这个问题提问要求执行Path接口,但在这里,我问怎么这个接口工作的方法,我的意思是它内部由JVM或任何其他机制执行用于执行它们。

Hol*_*ger 5

Path是一个普通的interface是像任何其他已实现interface通过一个具体的class声明来实现它,并提供了具体方法abstract的方法interface。因此,的方法没有什么特别的Path。正如链接的问题所解释的那样,有一些普通的实现interface

您不要感到困惑,因为它在文档中被称为“类”。虽然class从最狭义上讲是不同于interfaceenums的类型,但这些类型在该术语的最广义上都是所有类别。这是通过它们都被存储内的事实反射class file和经由操作名称加载loadClass上一个ClassLoader。在这些地方,接口和类之间没有区别。从这个角度来看,接口和枚举只是具有特殊属性的类(并且类似地,注释是具有特殊属性的接口)。

在文档中,如果您使用“类”的方式没有什么不同,则应使用广义的术语,即您在Path实例上调用方法而不必关心Path类型是否为interface。仅当读者是必须实现差异的人时,才需要强调差异。