`
jzinfo
  • 浏览: 116503 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

匿名内部类

阅读更多

首先看如下代码:

//定义一个接口
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框架中可以经常看到类似的匿名内部类的使用方法...

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics