首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于接口的概念有关问题

2012-02-11 
关于接口的概念问题接口用来描述类的功能,而不指明具体的实现方法。但是Iterator作为一个接口继承与collect

关于接口的概念问题
接口用来描述类的功能,而不指明具体的实现方法。但是Iterator作为一个接口继承与collection中的set,它的方法包含hasnext()next remove,方法又能实现,那么不是与原定义矛盾了吗?

[解决办法]
Collection c = new HashSet(); 
Iterator i = c.iterator(); 
i.hasnext(...); 

========================
Collection是一个接口,HashSet是Collection的实现类(非抽象类,否则就new操作非法)!
当调用c.iterator()时,实际是去HashSet类中找到这个方法并执行,该方法的返回值是一个迭代器对象!
接着的i.hasnext()并不是调用Iterator中的方法,则是调用了由Collection声明、由HashSet类new出的对象c调用HashSet类中的hasnext()方法!!!

其实这些只是涉及到了RTTI(运行期类型检查)的知识!自己好好看看书吧!!

热点排行