if(f instanceof Son)//instanceof 的作用是测试他左边的对象是不是右边类的类型,返回boolean类型,做判断可能是因为这代码是你写的你当然知道,到后别人来添加新功能时,就不确定了
{
Son son=(Son)f ;//
}//多态自始至终都是子类对象在做着变化,向上转型,向下强转。作者: 李阳 时间: 2013-3-13 01:32
Father f=new Son();
if(f instanceof Son)
{
Son son=(Son)f ;
}判断f是不是Son类型肯定是有道理的。电脑又不知到f是不是Son类型。万一传递来的f不是Son类型就会运行时报异常。用户在使用程序是胡乱传入参数就会导致异常,所以要判断下。虽说本程序不判断也没问题,但是写上判断语句不就更加严谨嘛。要养成好的编程习惯,以后才会不痛苦。作者: 安鹏宇 时间: 2013-3-13 02:35
Father f = new Son();//父类引用指向子类对象
if(f instanceof Son); //这里比较 虽不能确定指向的真实类对象是son还是Father但是
if(f instanceof Father) //不论是son 还是 Father都能证明两个类之间有继承关系。(我感觉可以这样理解)
Son son = (Son)f;