-1

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

エクリプスを使用しています。インターフェイスと 2 つのクラスも、同じパッケージ内の異なるクラス ファイルです。同じプロジェクトの別のパッケージの別のクラスでそれらを使用しようとしています。次のようにインスタンス化しようとすると、コンパイル エラーが発生します。

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

しかし、奇妙なことに、すべてを単一のファイルに入れると、機能します!

4

1 に答える 1