ちょっと前にこのコード例をオンラインで見つけましたが、もう一度やり直していますが、かなり混乱しています。Java - インターフェース、インターフェースをインスタンス化しますか?
これを見ると、何が集まっているのか(それは間違っているかもしれません)、NumberPrinterクラスのprintメソッドにPrinterオブジェクトが渡されるということです。しかし、このインターフェースはPrinterとも呼ばれます。したがって、Printerインターフェースの匿名クラスをインスタンス化してメソッドを定義し、それを渡すことはありませんか?
私の基本的な質問は、私の初期の仮定は正しいですか?もしそうならインターフェイスをインスタンス化できないと思いましたか?
public class NumberPrinter {
public interface Printer {
public void print (int idx);
}
public static void print (Printer p) {
for (int i = 0; i < 4; i++) {
p.print(i);
}
}
public static void main(String[] args) {
print(new Printer() {
@Override
public void print(int idx) {
System.out.println(idx);
}
});
}
}
これは重複した質問のようです。ここに行くhttp://stackoverflow.com/questions/4000062/can-we-create-an-object-of-an-interface – astidham2003