接口(interface) 可以 new()吗???~

比如 一个接口 A ,里面有一个方法fun1(),一般我们是先定义它的实现再引用它,比如

public class ImpA implements A{
 public void fun1(){
    //do some thing...
 }
}

然后在另一个类调用

public class Class1 {
 public void method1(){
    A a = new ImpA();
 }
}

但有时我想对这个接口做另一个实现不想使用ImpA,但由于是临时的又不想去做定义,则你就可以这样
public class Class1 {
 public void method1(){
    A a = new A(){ //相当于在内存中直接产生了一个接口的实现并引用这个内存对象。动态的代码
       public void fun1(){
         //do some thing...
       }
    };
 }
}
原文地址:https://www.cnblogs.com/zfdai/p/3571376.html