1.父类引用能指向子类对象,子类引用不能指向父类对象;
2.向上造型:父类引用指向子类对象,例如:Father f1 = new Son();
3.向下造型:把指向子类对象的父类引用赋给子类引用,需要强制转换,例如:
Father f1 = new Son();
Son s1 = (Son)f1;
但有运行出错的情况:
Father f2 = new Father();
Son s2 = (Son)f2;//编译无错但运行会出现错误
在不确定父类引用是否指向子类对象时,可以用instanceof来判断:
if(f3 instanceof Son){
Son s3 = (Son)f3;
}