【发布时间】:2016-10-01 05:29:26
【问题描述】:
我是 Java 新手。几周前开始,依靠 oracle 文档和这个站点。渐渐地,我对 OOP 的主要概念有了很好的理解。
我很清楚,接口的实例方法成为实现类的实例方法,因此可以通过实现类的对象在实例化后调用。
接口 Set 有方法 iterator()。据我了解,我们需要先有一个实现 Set 接口的类,然后实例化该类的对象,以便能够(通过对象)调用该方法。
查看我在网上阅读的以下代码 sn-p,我注意到 iterator() 方法是通过 (set) 调用的,它的类型仅为 (Set interface),(即 set 不是实例任何实现 Set 接口的类)。
我的问题是:这可能吗?
另一方面,不管上述是否可行,根据 oracle 文档,方法 iterator() 被归类为 Set 接口的“实例”和“抽象”方法。那么,为什么只有默认和静态接口方法才有实现呢?
public static void main(String args[]) {
HashMap<Integer, String> hmap = new HashMap<Integer, String>();
hmap.put(12, "Chaitanya");
hmap.put(2, "Rahul");
/* Display content using Iterator*/
Set set = hmap.entrySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Map.Entry mentry = (Map.Entry)iterator.next();
System.out.print("key is: "+ mentry.getKey() + " & Value is: ");
System.out.println(mentry.getValue());
【问题讨论】:
标签: java oop interface instance