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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘文飞 中级黑马   /  2012-11-26 23:01  /  2703 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘文飞 于 2012-11-28 21:30 编辑
  1. final Iterator<FileInputStream> it = al.iterator();
  2.                 //使用匿名内部类给不能直接创建对象的Enumeration进行实例化
  3.                 Enumeration<FileInputStream> en = new Enumeration<FileInputStream>()
  4.                 {
  5.                         public boolean hasMoreElements()
  6.                         {
  7.                                 return it.hasNext();
  8.                         }
  9.                         public FileInputStream nextElement()
  10.                         {
  11.                                 return it.next();
  12.                         }
  13.                 };
复制代码
有些弄不明白,这个匿名内部类怎么就可以创建Enumeration的对象了呢?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
亲 Eumeration也在java.util包里啊  属于其父类,匿名内部类当让可以使用父类的东西了   它只是一个容器而已  在哪里都可以使用,只要正确

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
齐银春 发表于 2012-11-26 23:09
亲 Eumeration也在java.util包里啊  属于其父类,匿名内部类当让可以使用父类的东西了   它只是一个容器而 ...

突然又想明白了,应该是隐形实现了Enumeration,然后复写了其中的两个方法。
————————————————————
突然又想不明白另外一回事了,Enumeration中的两个方法只是两个抽象方法,
en怎么可以直接调用呢。
Enumeration en = new Vector().elements();
en.hasMoreElements();
回复 使用道具 举报
刘文飞 发表于 2012-11-26 23:22
突然又想明白了,应该是隐形实现了Enumeration,然后复写了其中的两个方法。
————————————— ...

抽象方法也可以继承调用啊 这个和在哪里用没关系 楼主多看看代码翻翻API迷惑也就会少了
回复 使用道具 举报
齐银春 发表于 2012-11-27 08:58
抽象方法也可以继承调用啊 这个和在哪里用没关系 楼主多看看代码翻翻API迷惑也就会少了 ...

Enumeration en = new Vector().elements();
en.hasMoreElements();
这里貌似不存在继承吧,实现之后是可以调用,但是这里貌是直接调用了,
因为elements方法返回的也是Enumeration类型。
回复 使用道具 举报
刘文飞 发表于 2012-11-27 16:26
Enumeration en = new Vector().elements();
en.hasMoreElements();
这里貌似不存在继承吧,实现之后是可 ...

呵呵  初学者学多了我也迷惑了  以后大家多多交流
回复 使用道具 举报
王阳 中级黑马 2012-11-28 20:27:44
7#
为什么不行呢? 用一个匿名内部类实现了一个接口,很正常嘛
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马