instanceof含义
例:a instanceof A,为判断左边的a是否是右边A的实例,如果a是A的实例,那么返回true,否者返回false,这个判断主要是为了防止a强转为A时报错。
举例
//父类
class Person{
}
//继承了Person类
class Man extends Person{
}
//继承了Person类
class Woman extends Person{
}
public class Test{
public static void main(String[] args){
//此处p1只能访问Person中的方法
//如果该方法被子类Man重写了,那么访问的就是Man中方法,无法访问Man中特有的方法
//但是p1中加载了Man中特有的方法,只是当前情况无法访问
Person p1 = new Man();//这个是多态,也称向上转型
//如果p1想要访问Man中特有的方法,就需要向下转型
//使用强转符进行向下转型
//可是直接转型可能会报错,
//例如Woman woman = (Woman)p1;会报错,因为p1中并没有加载有关Woman有关的方法
//为了防止转换出错,就使用instanceof来判断,左边是否是右边的实例,如果是,返回true,不是就返回false
if(p1 instanceof Man){
Man man = (Man)p1//也称向下转型
}
}
}