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

© a1ccwt 中级黑马   /  2015-8-25 09:43  /  282 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

3 个回复

倒序浏览
恩  。。。。。。。。。。。。。。。
回复 使用道具 举报
既然已经去继承了fu类了 ,直接去复写他的fangfa2()岂不是还方便点
回复 使用道具 举报
至尊幽蓝 来自手机 中级黑马 2015-8-25 14:12:45
板凳
fu类有一个空方法fangfa2(){},什么也没做。zi类继承了fu,zi有一个方法fangfa1(),该方法返回一个fu类对象,在fangfa1内部通过匿名类的方式创建了一个fu对象,并重写其fangfa2,并返回该对象,fangfa1是静态方法。
在lianxi类内部的主方法内,zi.fangfa1()是调用zi类的静态方法,如前面所说,它返回一个fu对象,然后该对象又调用它的已经被重写过的fangfa2,输出。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马