接口方法如何在没有主体定义的情况下在 Java 中执行函数?



例如,迭代器接口中的hasNext()next()方法通过检查集合中是否存在下一行/对象并分别返回下一个对象来执行其功能,而无需重写这些方法。

请帮助我理解。

下面的示例代码片段:

import java.io.*;
import java.util.*;
class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>(); 
list.add("A"); 
list.add("B"); 
list.add("C"); 
list.add("D"); 
list.add("E"); 
// Iterator to traverse the list 
Iterator iterator = list.iterator(); 
System.out.println("List elements : "); 
while (iterator.hasNext()) 
System.out.print(iterator.next() + " "); 
System.out.println(); 
} 
}

接口方法执行函数,这就是接口的全部意义。它们指定了一个协定,实现它们的类必须满足该协定

阅读Iterator#hasNext的文档:

* Returns {@code true} if the iteration has more elements.
* (In other words, returns {@code true} if {@link #next} would
* return an element rather than throwing an exception.)
*
* @return {@code true} if the iteration has more elements

接口所说的只是实现它的任何类必须做的事情如何由实现它的类决定,因此完成检查的机制留给实现迭代器的任何类。

在您的示例中,迭代器在

java.util.ArrayList.Itr

最新更新