import java.util.*;public class Test {
public static void main(String[] args) {
Collection c = new HashSet();
c.add(new Name("f1","f2"))//name类的建立略了
..............................
Interator i = c.iterator();
while(i.hasNext()) {
Name n = (Name)i.next();
System.out.print(n.getFirstName()+" ")
}
}
}
问题是c是父类引用指向子类对象,那HasSet特有的属性不就用不了了吗,那直接就建立Collection类不就完了吗?
第二个是i拿到HasSet提供的遍历c的一个对象吗?
public static void main(String[] args) {
Collection c = new HashSet();
c.add(new Name("f1","f2"))//name类的建立略了
..............................
Interator i = c.iterator();
while(i.hasNext()) {
Name n = (Name)i.next();
System.out.print(n.getFirstName()+" ")
}
}
}
问题是c是父类引用指向子类对象,那HasSet特有的属性不就用不了了吗,那直接就建立Collection类不就完了吗?
第二个是i拿到HasSet提供的遍历c的一个对象吗?
所以是 Collection c = new HashSet();//HashSet是Collection接口的一个实现
此时的c是一个实现了Collection接口的HashSet,它只能有Collection接口定义的方法和属性,
如果你这样:Object o = new HashSet();
那么o只有Object类中的方法。
Interator是迭代器,本身就是为了方便遍历集合类中的元素而生的。