A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ztwztw 中级黑马   /  2013-12-16 16:04  /  1693 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Interface Test
{
void func();
}
class Demo
{
public static void main(Sstring[] args)
补足代码,用匿名内部类;
  void show(Test t)
   t.func();
}

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

正序浏览
本帖最后由 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() 是已经存在还是改变他们什么的,不过我理解大概想要的是这个意思吧


回复 使用道具 举报
补足代码如下:
  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. }
复制代码
回复 使用道具 举报
改了一下,你这样不行的
  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. }
复制代码
回复 使用道具 举报
匿名类是不能有名称的类。必须在创建时,作为new语句的一部分来声明它们。
new Test(){
重写func()

}
//想lz这样调用时不行的,只能创建匿名内部类的一个实例 因此一般用作监听器
void show(Test t)
   t.func();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马