对于instanceof的值的判断的理解
新建几个类Person、Teacher、Student、Book、Master,其继承关系如下图所示
作此图更加直观:
可以看到当代码如下图所示时,只有Book类和Master类的布尔值为false,其规律是instanceof右面的类只要是Student的父类或者是祖宗类,其布尔值均为TRUE;因为Book类和Master类不是Student的祖宗类,所以其值为FALSE
当是Teacher p1 = new Student();时,最后一句代码报错无法编译,
其原因是master类向上寻找时无法与红圈中联系到一起,而第一个例子中,master向上寻找时能与Person到Student类之间的person相连;其注释掉本语句后的执行结果如下图所示: