1.进行强制类型转换的原因:在暂时忽视对象的实际类型之后,使用对象的全部功能。
2.将一个子类的引用赋给一个超类的变量,编译器是允许的(向上类型转换)。但将一个超类的引用赋给一个子类变量,必须进行强制类型转换(向下类型转换)。
3.在进行类型转换之前,先查看一下是否能够成功的转换
if (person instanceof Student)
{
//向下类型转换
student = (Student)person;
...
}
4.当要使用子类中的某些方法时,就应该检查一下超类的设计是否合理,重新设计一下超类,并添加相应的方法。应该尽量少用类型转换和instaceof运算符。