2013-10-12 68 views
-1

在Java中,HashSetSet接口的實現,使我們能夠做到這一點:如果我創建一個接口IFruit如何模仿集 - HashSet的關係

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

所以有的實現如下

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() 

我正在使用eclipse。接口和兩個類在同一個包中也是不同的類文件。我試圖在同一個項目的另一個包中使用它們。它給出了一個編譯錯誤,當我嘗試實例化這樣的:

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

但奇怪的是,如果我把一切都放在一個文件它的作品!

+1

*實現蘋果*的Apple * - 什麼? –

+3

你可以做到這一點,可能你做錯了別的東西:)。發佈您的代碼。 – libik

+2

'公共課Apple實施IFruit' –

回答

1

編譯器不是很聰明。如果您通過了Car對象,該怎麼辦?還是列表?那些水果?

更改聲明public class Apple{到:

public class Apple implements IFruit { 

編輯:確保導入IFruitApple

+0

完全是我的錯,我沒有提到任何事情。蘋果類正在實施它。 – sid