Enumeration和Iterator是接口类,为什么能产生对象

我初学java看书说接口成员被覆盖才能用啊
2024-12-29 22:30:33
推荐回答(2个)
回答1:

可以这样理解,按照Java API文档的说法,接口有类实现、对象实现的区别。类实现,例如Runnable,是一个类通过implements引用Runnable接口实现的。此时,比如(Thread)t = new Thread(this),按字面义API文档上说明this应该是Runnable接口,但实际上应当理解为this是这个实现了Runnable接口的类,一个实现了run()方法的类。
如果上面的逻辑通顺,那么对应的,接口的对象实现,比如Enumeration e = (Vector)v.elements(),e是一个引用了Enumeration接口的对象,而不应该是Enumeration这个接口产生的对象。

PS:以上也是些个人理解,因为这也是我思考过一段时间的问题。。。抛砖引玉嘛,期待能有更权威的解释-_-

回答2:

简单来说是~多态~