定义
instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
实例
父类Animal:
public class Animal {
public void speak() {
System.out.println("Animal Speak!");
}
}
子类Dog
public class Dog extends Animal{
public void speak() {
bark();
}
private void bark() {
System.out.println("Woof!");
}
}
运行结果
public class Test {
public static void main(String[] args) {
Animal pet,animalMini = new Animal();
Dog fido = new Dog();
pet = fido;
pet.speak();//输出的是子类Dog的speak方法
//pet.bark();//编译时报错!!!
if(pet instanceof Dog) {
System.out.println("OK");
}else {
System.out.println("NO");
}
if(animalMini instanceof Dog) {
System.out.println("OK");
}else {
System.out.println("NO");
}
}
}
说明pet是Dog的实例而animalMini不是!!!