在 Java 中,HashSet
是Set
接口的实现,它允许我们这样做:
Set<String> set = new HashSet<String>();
所以如果我创建一个接口IFruit
和一些实现如下
public interface IFruit {
public String getColour();
/* more methods */
}
public class Apple implements IFruit {
public String getColour() {
return "red";
}
}
public class Banana implements IFruit {
public String getColour() {
return "yellow";
}
}
那我为什么不能这样做?
IFruit apple1 = new Apple()
我正在使用日食。接口和两个类也是同一个包中的不同类文件。我试图在同一个项目的不同包中的另一个类中使用它们。当我尝试像这样实例化它时会出现编译错误:
public class InterfaceTest {
public static void main(String[] args) {
IFruit newFruit = new Apple();
}
}
但奇怪的是,如果我将所有内容放在一个文件中,它就可以工作!