匿名内部类的特点:
匿名内部类是没有名称的内部类,没有办法引用它们。必须在创建时,作为new语句的一部分来声明并创建它们的实例
匿名内部类必须继承一个类(抽象的,非抽象的都可以)或者实现一个接口,所有父亲(或者父接口)是抽象类,则匿名内部类必须实现其所有抽象方法
语法:实例
new interface/superclass()(类体)
这种形式new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口,并同时创建该匿名类的一个新实例。
abstract class Dome1 {
abstract void printInfo();
}
interface Demo2 {
abstract void interprint();
}
public class Test {
public static void main(String[] args) {
Dome1 d = new Dome1() {
void printInfo() {
// TODO Auto-generated method stub
System.out.println("这不是demo1,而是匿名内部类的方法");
}
};
d.printInfo();
new Demo2() {
public void interprint() {
// TODO Auto-generated method stub
System.out.println("这不是接口的实例,是匿名内部类的方法");
}
};
}
}