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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 我为你着迷 于 2014-6-13 22:43 编辑
  1. interface Inter
  2. {
  3.                 void method();        
  4. }


  5. class Test
  6. {
  7.                 static Inter function()
  8.                 {
  9.                                 return new Inter
  10.                                 {
  11.                                                 public void method()
  12.                                     {
  13.                                                   System.out.println("method run");
  14.                                     }               
  15.                                 };
  16.                 }
  17. }

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

大家好,就是毕老师说只有Inter对象才可以调用method方法,对于这句话我很不理解。我有2点疑惑:
第一个就是为什么只有Inter才可以调用method这个方法呢?请问这个有原因吗?
第二个就是咱搞个类去实现Inter然后创建子类对象不也可以调用method方法嘛,为什么毕老师说只要inter这一个呢?
说白了,我就是想知道为什么返回值类型是inter呢?转不过弯啦,都给我搞蒙了。麻烦仁兄们忙帮解答下,小的在此谢过了。

3 个回复

正序浏览
new 父类  覆盖 父类的方法  !!!
回复 使用道具 举报
第二个就是咱搞个类去实现Inter然后创建子类对象不也可以调用method方法嘛。这个是可以的。匿名内部类的存在就是为了简化代码。比如开发中你需要用到Inter接口的方法,但是又不想另外写一个子类对象,然后再用子类对象来调用method方法。你就用到匿名内部类啦。所以这个匿名内部类就返回你要一个对象,你拥有了这个对象就可以调用你想调用的方法了。
回复 使用道具 举报
说实话  我感觉这个程序写错了,你定义的Inter是一个接口,无法实例化对象,求技术分啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马