- public static void main(String[] args) {
- List list = new ArrayList(); //这句就不需要解释了吧。创建一个对象。
- /**
- * 下面这句,考虑一个问题,你的这句new ArrayList()的目的是什么?
- * 是不是来创建一个对象?
- * 既然是一个对象,那么将其引用赋值给作为所有类父类的Object就肯定没有问题。
- * 这是一个典型的父类引用指向子类对象。
- */
- Object o = new ArrayList();
-
- /**
- * 在JVM看来,o是一个Object的引用,你要将这一个对象赋值给其子类,必须要强制转型。
- */
- ArrayList al = (ArrayList)o;
-
- /**
- * ArrayList实现了List接口,与上面一样,父类引用指向子类对象。
- */
- List li = al;
-
- /**
- * 参见ArrayList al = (ArrayList)o;说明。
- */
- List l = (List )o;
- }
复制代码 PS:不是Object直接转成List,而是将该引用指向的ArrayList对象转成List。 |