在Path是接口时创建路径对象?

时间:2016-07-28 16:42:05

标签: java interface path

如果Path类本身是一个接口,我不明白如何创建Path对象。

Path path = Paths.get("...");

我真的很挣扎,而且我也是初学者,所以请帮帮忙!

3 个答案:

答案 0 :(得分:1)

想象一下底层代码是这样的:

interface Path {}
class PathImpl implements Path {
  String path;
  PathImpl(String path) { this.path = path; }
}
class Paths {
  static Path get(String path) { return new PathImpl(path); }
}

因此,如果您使用我的示例致电Paths.get("abc"),您将收到一个实现new PathImpl("abc")界面的Path

答案 1 :(得分:1)

接口在Java中定义类型。如果你得到一个类型为Path的对象,编译器就会知道可以调用的方法。您还将了解您可能希望采用的方法。 Paths.get返回实现接口Path的类的实例。

您不了解实现类,您不必知道它,以便您的代码不依赖于实现细节。接口提供了实现松散耦合的可能性。您可以使用接口并编写调用它的方法的代码,即使仍然没有实现(特别是对于自上而下的方法很有用)。接口使您可以拥有多个接口实现,这些实现指定了所有实现必须实现的通用行为。 ArrayListLinkedList是实现接口List的多个类的示例。这称为多态性。许多标准包括指定行为的接口。这允许stabdard的多个实现存在。

答案 2 :(得分:0)

assylias表示它返回一个PathImpl,其中路径。如果你对"的含义感到困惑,那就是",请阅读java中的inheritance