在子类中对变量进行重写,即使在父类中这一变量也变为和子类相同的要求依然无法转化为子类。即父类如果想向子类转化必须要在定义时即定义为子类。
e.g.
package _pasted_code_;
public class TextClass {
public static void main(String args[]){
Father i=new Father();
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> i.num=1;</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> if(i instanceof Son) {</span>
Son a=(Son)i;
System.out.println("第一次成功");
}
else{
System.out.println("第一次失败");
}
Father b = new Son();
if(b instanceof Son) {
Son a=(Son)b;
System.out.println("第二次成功");
}
else{
System.out.println("第二次失败");
}
}
}
Father类:
package _pasted_code_;
public class Father {
public int num;
}
Son类:
package _pasted_code_;
public class Son extends Father{
public int num = 1;
}
运行结果:
第一次失败
第二次成功