Java 如何模拟set-hashset关系

Java 如何模拟set-hashset关系,java,inheritance,interface,Java,Inheritance,Interface,在Java中,HashSet是Set接口的实现,它允许我们执行以下操作: Set<String> set = new HashSet<String>(); Apple实现的公共类IFruit{ 公共字符串getColor(){ 返回“红色”; } } public类实现IFruit{ 公共字符串getColor(){ 返回“黄色”; } } 那我为什么不能这么做 IFruit apple1 = new Apple() 我正在使用eclipse。接口和两个类也是同一

在Java中,
HashSet
Set
接口的实现,它允许我们执行以下操作:

Set<String> set = new HashSet<String>();

Apple实现的公共类IFruit{
公共字符串getColor(){
返回“红色”;
}
}
public类实现IFruit{
公共字符串getColor(){
返回“黄色”;
}
}
那我为什么不能这么做

IFruit apple1 = new Apple()
我正在使用eclipse。接口和两个类也是同一个包中的不同类文件。我试图在同一个项目的不同包中的另一个类中使用它们。当我尝试像这样实例化它时,它会出现编译错误:

public class InterfaceTest {
    public static void main(String[] args) {
        IFruit newFruit = new Apple();
    }
}

但奇怪的是,如果我把所有的东西都放在一个文件中,它就会工作

编译器不是很聪明。如果你经过一辆
汽车
物体怎么办?还是一份清单?那些是水果吗

将声明
公共类Apple{
更改为:

public class Apple implements IFruit {

编辑:确保导入
IFruit
Apple

实现苹果的苹果-什么?你能做到这一点,可能你做错了其他事情:)。发布你的代码。
公共类Apple实现IFruit
实现苹果的苹果-你的意思是“哪个实现了
IFruit
”?编译器非常简单你告诉他苹果是水果!完全是我的错,我什么都没提。苹果类正在实现它。
public class Apple implements IFruit {