请问这里new Intel()为什么是new的接口名?接口是抽象的啊。而且后面也没有实现该接口的类啊

interface Inter {
public abstract void show();
}

class Outer {
public void method() {
new Inter() {
public void show() {
System.out.println("show");
}
};
}
}

class InnerClassDemo6 {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}
}

  后面的括号就是实现,这就是匿名类,在有些情况下我们需要实现某个接口或者类,但是又不想单独定义一个类时就可以用这种方式,它的好处是一次性的。

这个叫做匿名内部类,相当于有个看不见的类把方法或者接口实现了,接口也是一个类虽然是抽象的类,还是可以直接New的。