匿名の内部クラスを扱うときのインターフェースの概念について混乱しています。Javaでインターフェースをインスタンス化できないことを私が知っている限り、次のステートメントにはコンパイルエラーがあります
ActionListener action = new ActionListener(); // compile error
匿名クラスを扱うとどうなりますか?なぜそれが使用を許可するのnew
ですか?例えば:
JButton button = new JButton("A");
button.addActionListener(new ActionListener(){ //this is fine
@Override
public void actionPerformed(ActionEvent e){
}
};
コンパイラはクラスを作成してActionListener
舞台裏で実装するだけですか?それはどのように機能しますか?