interface A { public void fun1(); }class B { int i = 10; public void get(A a)// 声明了一个方法get,接受一个类型为A的参数 { a.fun1(); } public void test() { this.get(new A()//这里就是匿名的内部类,实现了A这个接口的类,只是是匿名的,编译的时候会自动生成一个类名为B$1的类,这一点你可以用cmd手动编译一下,就能看见B$1.class这样一个文件,相当于你有一个B$1的类实现了A这个接口,然后作为get的参数传了进去 { public void fun1() { System.out.println(i); } }); } }class TestNonameDemo { public static void main(String args[]) { B b = new B(); b.test(); } } |