黑马程序员技术交流社区

标题: 有一句代码不知道怎么理解,求解。 [打印本页]

作者: 彭柏良    时间: 2014-12-5 17:42
标题: 有一句代码不知道怎么理解,求解。
  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("Hello Java");
  14.                         }
  15.                 };
  16.         }
  17. }

  18. class InnerClassTest
  19. {
  20.         public static void main(String[] args)
  21.         {
  22.                 Inter in = Test.function();//这句话怎么理解?
  23.                 in.method();
  24.         }
  25. }
复制代码

作者: 曛丨黯淡浮华    时间: 2014-12-5 18:09
本帖最后由 曛丨黯淡浮华 于 2014-12-5 18:14 编辑

亲,因为function是静态方法, 静态的调用就是类名点方法名,
该方法体, 返回的是一个 Inter 接口,并且已经实现了 method方法,

这里主要运用了匿名内部类,

以上回答,仅供参考 ~ 个人经验学习交流 _

作者: 水竹    时间: 2014-12-5 21:53
返回的是一个Inter接口的子类实例
作者: 李运岚    时间: 2014-12-5 22:22
静态方法,main运行时就已经加载,只要用类名.方法名就可以调用
作者: 327753899    时间: 2014-12-5 22:29
这事匿名内部类,类名.方法运行




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