这在java中是什么? “动态”附加方法?

时间:2011-07-02 22:57:01

标签: java anonymous-inner-class

我今天看到了这样的事情:

    frame.addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });

以下部分是什么意思?

new AClass(){ this part }

我可以“扩展”并在线创建此类的新实例吗?

我试图谷歌,但我不知道它叫做什么= /

PS:学习java = p

4 个答案:

答案 0 :(得分:3)

它被称为“匿名类”......它是实现接口或扩展现有类(通常是抽象的“适配器”或“助手”类)的简便方式,而无需为其命名。

你可以在Swing代码中看到它...实现窗口和鼠标监听器。

这看起来(面值)就像对主题的正确讨论:http://www.javaworld.com/javaworld/javaqa/2000-03/02-qa-innerclass.html

干杯。基思。

答案 1 :(得分:2)

要添加波西米亚的回答,这与做类似的事情相同

class MyWindowAdapter extends WindowAdapter() {

        @Overide 
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
}

frame.addWindowListener(new MyWindowAdapter());

答案 2 :(得分:2)

它只是一个匿名的内部类,当你只使用那个接口实现一次时它很有用,它非常有用,否则你只需为它创建一个完整的类。

答案 3 :(得分:1)

它被称为 anonymous 类。