//Student是复写过toString方法的
public class IteratorDemo {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add(new Student("小王", 10));
c.add(new Student("小李", 12));
c.add(15);
for (Iterator it = c.iterator(); it.hasNext();) {
Object o = it.next(); // 在这里并没强转为Student型
System.out.println(o); //但是输出的确实是Student的toString()的方法
}
}
}
解释:
it.next()的返回值就是添加时的对象,因为一个集合可以添加不同
类型的引用类型,所以,在这里it.next()不能确定到底返回的是哪一个对象
所以只能用Object来接收.直接打印的时候就是调用的是存入该对象的toString()方法. |
|