instanceof的作用是判断左面的对象是否是右面类的实例
1.instanceof是一个双目运算符,该运算符与“==”,“>”等类似,该运算符左面是一个实例化的对象,右面是类。
2.当左面的对象是右面类创建的对象时,既是左面的对象是右面类的实例,返回true,否则返回false。
示例:
Animal类:
public class Animal {
public String weight;
public String height;
public String getWeight() {
return weight;
}
public void setWeight(String weight) {
this.weight = weight;
}
public String getHeight() {
return height;
}
public void setHeight(String height) {
this.height = height;
}
}
Cat类:
public class Cat extends Animal {
public String paw;
public String getPaw() {
return paw;
}
public void setPaw(String paw) {
this.paw = paw;
}
}
Rabbit类:
public class Rabbit extends Animal{
}
Rose类:
public class Rose extends Rabbit {
}
Main:
public class Main {
public static void main(String[] args){
Cat cat = new Cat();
Rose rose = new Rose();
Boolean in = cat instanceof Cat;
System.out.println("cat是Cat的实例: "+in);
Boolean in1 = cat instanceof Animal;
System.out.println("cat是Animal的实例: "+in1);
Boolean in2 = rose instanceof Animal;
System.out.println("rose是Animal的实例: "+in2);
Rose rose1 = null;
Boolean in3 = rose1 instanceof Rose;
System.out.println("rose(null)是Rose的实例 :"+in3);
}
}
返回结果:
cat是Cat的实例true
cat是Animal的实例true
rose是Animal的实例true
rose(null)是Rose的实例false