将接口的对象初始化为方法的参数?

时间:2017-10-28 16:51:45

标签: java object interface actionlistener

我知道,你不能创建接口的对象,而是实现接口的类的对象,但是,在查看事件处理程序的教程时,我发现了以下内容:

  b.addActionListener(new ActionListener(){  
public void actionPerformed(ActionEvent e){  
        tf.setText("Welcome to Javatpoint.");  
}  
});  

首先,我不知道你可以在方法的参数中构造一个对象。其次,我知道ActionListener是一个接口,那么new ActionListener到底在做什么呢?阅读后,我得到了一个含糊的想法,即这实际上是在创建一个实现Action Listener的新类,但这个类叫什么?我可以制作这门课的其他物品吗?最后,上述代码究竟与以下内容有何不同:

//where MyActionListener is a class that implements ActionListener

MyActionListener objectOfActionListener = new MyActionListener();
b.addActionListener(objectOfActionListener);

//and the method for actionPerformed is in the MyActionListener class

1 个答案:

答案 0 :(得分:0)

这是实现ActionListener接口的anonymous class

您当然可以创建自己的显式类并实例化它,但除非您需要在多个地方重用相同的逻辑,否则它没有大的好处。