| PS:不是Object直接转成List,而是将该引用指向的ArrayList对象转成List。复制代码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;
        }
 |