抽象类不是不能实例化吗
为什么会出现这样的语句呢 addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
为什么会出现这样的语句呢 addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//一楼正解。比如接口也不能实例化,但一样可以通过匿名内部类省去继承或者实现接口的步骤,使代码更简化。
//例如有一个接口AA a = new A(){
//这里是要重载的方法。
};
//这里是要重载的方法。
};
好像内部类的定义只有两种方式:
1.在类的内部完整的定义另一个类,只是类的访问控制符有三种:public, protected, private
2.采用匿名内部类定义。也就是new 抽象类(){}的形式你说的那种形式合理吗
我还特意写了一下。是可以的啊。
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());
}
}