我看jdk文档中对java.util.Enumeration的定义是个接口啊,可是怎么经常看到类似这样的写法:Enumeration e =session.getAttributeNames();接口不是不能实例化吗?对这种表达方式表示很不理解,哪位大神帮忙解释下吧,谢了!

解决方案 »

  1.   

    java.util.Enumeration是一个接口,没有问题,接下来你说的“接口不能实例化” 不知道你从哪里听来的接口本来就是需要实例化然后调用的 如果某个类A 承诺implements java.util.Enumeration那么我们就可以这样实例化一个接口 Enumeration e=new A();  在这里e实际在运行的时候就是A类的一个具体实例,只是被当做Enumeration 来用上面那个问题就是 Enumeration e =session.getAttributeNames(); session 这个实例所属的类具体的方法getAttributeNames();就是返回了具体实例化Enumeration的一个类,就是上面我说的类似 Class A 承诺implements java.util.Enumeration 可能实际的返回结果就是A的这样一个实例