永远记住:不管父类子类之间如何转换,永远是父类引用指向子类对象,子类引用指向父类对象,需要将父类对象强制转换为子类!
举例:
public class Animal{} //父类
class Dog extends Animal{} //子类
public class Test{
public static void main(String[] args){
Animal a1=new Animal(); //父类引用指向父类对象,√
Animal a2=new Dog(); //父类引用指向子类对象,这是多态,√
Dog d1=new Dog(); //子类引用指向子类对象,√
Dog d2=new Animal(); //子类引用指向父类对象,×
a1=d1; //父类引用指向子类对象,√
d1=a1; //子类引用指向父类对象,×
d1=(Dog)a1; //父类对象a1强制转换为子类对象,然后子类引用指向子类对象,√
}
}
朴实无华的分割框,下面是知识点框架梳理,上面时精辟要点!