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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭柏良 中级黑马   /  2014-12-5 17:42  /  1173 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码

5 个回复

倒序浏览
本帖最后由 曛丨黯淡浮华 于 2014-12-5 18:14 编辑

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

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

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

点评

分析得真好  发表于 2014-12-5 22:46

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
返回的是一个Inter接口的子类实例
回复 使用道具 举报
静态方法,main运行时就已经加载,只要用类名.方法名就可以调用
回复 使用道具 举报
这事匿名内部类,类名.方法运行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马