我正在一个包含以下界面
的项目中工作import ListIF;
public interface PlayListIF {
public ListIF<Integer> getPlayList();
public void addListOfTunes(ListIF<Integer> lT);
public void removeTune(int tuneID);
}
稍后,其他课程使用
import PlayListIF
import PlayList
后来成了一个实例:
PlayListIF playlist = new PlayList();
导入接口或其实现之间有什么区别吗?导入界面有什么意义?
由于
答案 0 :(得分:1)
导入实现(PlayList
)和界面是因为代码行,
PlayListIF playlist = new PlayList();
引用实现的实例和接口。变量playlist
可以是实现PlayListIF
的类的任何实例。它恰好是PlayList
类的一个实例,它可以是实现PlayListIF
接口的任何类的实例。
答案 1 :(得分:-1)
您需要导入代码中引用的任何类/接口,以便编译器知道您所引用的内容。 在这种情况下,您指的是两者,因此您需要同时导入它们。
答案 2 :(得分:-2)
我可以尝试通过为java中的新手提供一个小例子来解释。 有一个类有一个方法保存(某事)。 你可能想保存“东西”
基本上你会写一个服务(接口)
public interface Saver{
public void save(MyData something);
}
你可以像
一样实现这一点现在,当你实际使用你的Saver时,请说出
public class A {
private Saver saver;
public A (Saver saver){
this.saver = saver;}
}
您可以通过构造函数FTPSaver或HardDriveSaver注入,具体取决于您希望它在特定上下文中保存的方式,但对于A类,它使用Saver并不重要。
TLDR:接口是一个合约,它显示了可用的方法,无论它们的实现如何,如果你实现了一个接口,你必须实现其中的所有方法。你应该使用接口作为属性而不是实现。
希望有所帮助