本质:匿名内部类会隐式的继承一个类或者实现一个接口,或者说,匿名内部类是一个继承了该类或者实现了该接口的子类匿名对象。
public class Outer {
public void method(){
**new inner(){
public void info(){
System.out.println(“hello world”);
}
}.info();
**class A implements inner{
@Override
public void info() {
System.out.println(“hello world”);
}
};
A a=new A();
a.info();
}
}
public static void main(String[] args) {
Outer outer=new Outer();
outer.method();
}
}
interface inner{
public void info();
}
通过程序看出,实际上我们的Inner是一个接口,本身接口是不能直接new的,但是呢却又发现我们在new的时候,Inner这个接口后面带了一对花括号,那么这个就表示实际上我现在new的是这个接口的实现类。但是发现,这个实现类是没有名字的。