当前位置: 代码迷 >> J2SE >> 关于接口的概念有关问题
  详细解决方案

关于接口的概念有关问题

热度:29   发布时间:2016-04-24 12:54:08.0
关于接口的概念问题
接口用来描述类的功能,而不指明具体的实现方法。但是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(运行期类型检查)的知识!自己好好看看书吧!!
  相关解决方案