黑马程序员技术交流社区

标题: 匿名内部类,比较难懂 [打印本页]

作者: a1ccwt    时间: 2015-8-25 09:43
标题: 匿名内部类,比较难懂
  1. class lianxi2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 zi.fangfa1().fangfa2();
  6.         }
  7. }
  8. class fu
  9. {
  10.         void fangfa2(){};
  11. }
  12. class zi extends fu
  13. {

  14.          static fu fangfa1()
  15.         {
  16.             return new fu()
  17.                         {
  18.                public void fangfa2()
  19.                 {
  20.             System.out.println("holle");
  21.        
  22.        
  23.             }
  24.        
  25.         };
  26.        
  27.         }
  28. }
复制代码

作者: 千山万水    时间: 2015-8-25 09:52
恩  。。。。。。。。。。。。。。。
作者: pengbeilin    时间: 2015-8-25 13:43
既然已经去继承了fu类了 ,直接去复写他的fangfa2()岂不是还方便点

作者: 至尊幽蓝    时间: 2015-8-25 14:12
fu类有一个空方法fangfa2(){},什么也没做。zi类继承了fu,zi有一个方法fangfa1(),该方法返回一个fu类对象,在fangfa1内部通过匿名类的方式创建了一个fu对象,并重写其fangfa2,并返回该对象,fangfa1是静态方法。
在lianxi类内部的主方法内,zi.fangfa1()是调用zi类的静态方法,如前面所说,它返回一个fu对象,然后该对象又调用它的已经被重写过的fangfa2,输出。。。




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