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();
}
}
しかし、奇妙なことに、すべてを単一のファイルに入れると、機能します!