java中的instanceof判断

有的朋友遇到if判断中的instanceof不知道什么意思
eg:
问题:
public class Shout {
String name=“Person”;
public void Shout(){

System.out.println(name);

}

}
class Student extends Shout{
public void methodB(){
String name=“Student”;
String School=“school”;

System.out.print(“Child methodB”);
}
}
class Sample{
public static void main(String []args){
Shout base=new Student();
System.out.println(base instanceof Student);
System.out.println(base instanceof Shout);
System.out.println(base instanceof Object);

}
}

答案:
A instanceof B
A是一个对象(使用new实例的对象)
B是一个类(不是方法名)
他表示A这个对象是否是B这个类的实例
代码里base是Shout类型的一个变量,引用了Student的一个实例(Student是继承了Shout的,所以可以这样)
base instanceof Student 判断base这个对象是否是Student这个类的实例,当然是啦,因为base引用的实例就是一个student实例
base instanceof Shout 判断base这个对象是否是Shout这个类的实例,也是,因为Student是继承Shout,根据上面的为true,这个也是true的
最后一个,没什么好想的,Object是所有的类的基类,所以任何实例instanceof Object都为true

你可能感兴趣的:(java中的instanceof判断)