如果Path类本身是一个接口,我不明白如何创建Path对象。
Path path = Paths.get("...");
我真的很挣扎,而且我也是初学者,所以请帮帮忙!
答案 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
的类的实例。
您不了解实现类,您不必知道它,以便您的代码不依赖于实现细节。接口提供了实现松散耦合的可能性。您可以使用接口并编写调用它的方法的代码,即使仍然没有实现(特别是对于自上而下的方法很有用)。接口使您可以拥有多个接口实现,这些实现指定了所有实现必须实现的通用行为。 ArrayList
和LinkedList
是实现接口List
的多个类的示例。这称为多态性。许多标准包括指定行为的接口。这允许stabdard的多个实现存在。
答案 2 :(得分:0)
assylias表示它返回一个PathImpl,其中是路径。如果你对"的含义感到困惑,那就是",请阅读java中的inheritance。