一、源代码:
package p4.bean;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList a1 = new ArrayList();
a1.add(new Person("张三1",21)); //第一处
a1.add(new Person("张三2",22));
a1.add(new Person("张三3",23));
a1.add(new Person("张三4",24));
Iterator it = a1.iterator();
System.out.println(it.next().getClass());
while(it.hasNext()){
Person p = (Person)it.next(); //第二处
System.out.println(p.getName()+"--"+p.getAge());
}
}
}
二、输出结果:
class p4.bean.Person //第三处
张三2--22
张三3--23
张三4--24
三、问题?
问题一:第一处是不是涉及多态中的向上转型过程,由Person类转为Object类吗?
问题二:看了毕向东的基础视频时发现,既然说第二处代码涉及向下转型,为什么第三处输出的结果却是Person类。也就是说集合当中存储的是Person对象?那么第二处Person p = (Person)it.next();只能解释为已经为将Person类型对象强制转换成Person类型对象,否则该怎么解释?
好困惑啊?那位大神能帮帮我吗?:dizzy::D
|
|