理解匿名内部类有点困难
这是我的代码。我知道 WindowAdapter 类是一个抽象类,那么“new WindowAdapter()”这行是什么意思?我们是否创建了一个 WindowAdapter 类的对象,它是一个抽象类。Confused!!!
Class Myframe extends Frame
{
public static void main(String args[])
{
Myframe f=new Myframe();
f.setVisible(true);
f.setSize(300,300);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
最佳答案
它正在创建一个匿名类的对象,该类扩展了 WindowAdapter
类,而无需编写代码来子类化它。
来自Java Tutorials :
匿名类使您的代码更加简洁。它们使您能够同时声明和实例化一个类。它们就像本地类,只是没有名称。
这是创建子类对象的快捷方式,无需显式编写扩展 WindowAdapter
的单独类。要点是您需要从方法代码内部获取该对象,因此您永远不会引用到其他地方,因此您不需要为它们创建单独的类。
关于java - 抽象类的对象是在使用匿名内部类时创建的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16789952/