匿名内部类相当于定义一个类实现了这个接口,再new了一个实现了该接口的对象。

解决方案 »

  1.   

    不用匿名内部类
    interface A{
    public void printInfo();
    }
    class B implements A{
    public void printInfo(){
    System.out.println("Hello World!!!");
    }
    }
    class X{
    public void fun1(){
    this.fun2(new B());
    }
    public void fun2(A a){
    a.printInfo();
    }
    }
    public class Test{
    public static void main(String args[]){
    new X().fun1();
    }
    }
    匿名内部类
    interface A{
    public void printInfo();
    }
    class X{
    public void fun1(){
    this.fun2(new A(){
    public void printInfo(){
    System.out.println("Hello World!!!");
    }//内部类
    });
    }
    public void fun2(A a){
    a.printInfo();
    }
    }
    public class Test{
    public static void main(String args[]){
    new X().fun1();
    }
    }