抽象类不是不能实例化吗
为什么会出现这样的语句呢         addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

解决方案 »

  1.   


    //一楼正解。比如接口也不能实例化,但一样可以通过匿名内部类省去继承或者实现接口的步骤,使代码更简化。
    //例如有一个接口AA a = new A(){
     //这里是要重载的方法。
    };
      

  2.   

    2楼你这样写合理吗?A a = new A(){
     //这里是要重载的方法。
    };
    好像内部类的定义只有两种方式:
    1.在类的内部完整的定义另一个类,只是类的访问控制符有三种:public, protected, private
    2.采用匿名内部类定义。也就是new 抽象类(){}的形式你说的那种形式合理吗
      

  3.   

    回5楼。你说的定义内部类有两种形式。我写的那个和你的第2种不是一样的吗?
    我还特意写了一下。是可以的啊。
    interface A {
    public int getI();
    }

    public class Test {
    public static void main(String[] args) {
    A a = new A(){
    public int getI() {
    return 12;
    }
    };
    System.out.println(a.getI());
    }
    }
      

  4.   

    匿名内部类,可以new 父类或接口名