黑马程序员技术交流社区

标题: 匿名内部类 [打印本页]

作者: ztwztw    时间: 2013-12-16 16:04
标题: 匿名内部类
Interface Test
{
void func();
}
class Demo
{
public static void main(Sstring[] args)
补足代码,用匿名内部类;
  void show(Test t)
   t.func();
}

作者: 四五六七八    时间: 2013-12-16 16:27
匿名类是不能有名称的类。必须在创建时,作为new语句的一部分来声明它们。
new Test(){
重写func()

}
//想lz这样调用时不行的,只能创建匿名内部类的一个实例 因此一般用作监听器
void show(Test t)
   t.func();
作者: 末末    时间: 2013-12-16 17:06
改了一下,你这样不行的
  1. interface Test
  2. {
  3. void func();
  4. }
  5. class Test2
  6. {
  7.          static Test function()
  8.         {
  9.                 return new Test()
  10.                 {
  11.                         public void func()
  12.                         {
  13.                                 System.out.println("func");
  14.                         }
  15.                 };
  16.         }
  17. }

  18. class Demo4
  19. {
  20.    public static void main(String[] args)
  21.    {
  22.           Test2.function().func();
  23.    }
  24. }
复制代码

作者: hurryup    时间: 2013-12-16 17:39
补足代码如下:
  1. interface Test
  2. {
  3. void func();
  4. }
  5. public class Demo
  6. {
  7. public static void main(String[] args)
  8. {
  9. //补足代码,用匿名内部类;
  10.         new Test(){
  11.         public void func(){System.out.println("Hello World!");}
  12.        
  13.   void show(Test t)
  14.   {
  15.        
  16.    t.func();
  17.   }
  18.         }.func();
  19. }
  20. }
复制代码

作者: Diaraelo    时间: 2013-12-16 17:40
本帖最后由 Diaraelo 于 2013-12-16 17:56 编辑
  1. interface Test
  2. {
  3. void func();
  4. }

  5. public class T1
  6. {

  7. public static void main(String[] args)
  8. {
  9.                show(new Test()
  10.               {
  11.                        public void func()
  12.                        {
  13.                                     System.out.println("我是匿名内部类");
  14.                        }
  15.                });
  16. }
  17. public static void show(Test t)
  18. {
  19. t.func();
  20. }

  21. }

复制代码
楼主代码问题说得有点不清楚,不知道最后的void show(Test t) 和 t.func() 是已经存在还是改变他们什么的,不过我理解大概想要的是这个意思吧







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2