匿名内部类
程序员文章站
2022-03-07 11:08:24
...
首先看如下代码:
//定义一个接口
interface A
{
public void fun();
}
//tempb实现了接口A
class tempb implements A
{
public void fun()
{
System.out.println("我实现了接口A");
}
};
class tempc
{
public void fun2(A a)
{
a.fun();
}
public void fun3()
{
this.fun2(new tempb()); //匿名类new tempb() 实例化接口A
}
};
public class TestInnerClass
{
public static void main (String[] agrs)
{
new tempc().fun3();
}
};
如果tempb 仅仅使用1次,我们没必要单独为其创建一个类,使用匿名的即可,以上代码更改如下:
interface A
{
public void fun();
}
class tempc
{
public void fun2(A a)
{
a.fun();
}
public void fun3()
{
this.fun2(new A() //注意这里为 new A()
{
public void fun()
{System.out.println(" 匿名内部类实现接口方法");}
} );
}
};
public class TestInnerClass
{
public static void main (String[] agrs)
{
new tempc().fun3();
}
};
在后续的Spring框架中可以经常看到类似的匿名内部类的使用方法...