在Java中,可以使用instanceof
操作符來檢查一個對象是否是某個類的實例或者是其子類的實例。instanceof
的語法如下:
obj instanceof ClassName
其中,obj
是要檢查的對象,ClassName
是要檢查的類名。
instanceof
操作符返回一個布爾值,如果obj
是ClassName
類的實例或者是其子類的實例,則返回true
,否則返回false
。
下面是一個示例代碼:
public class Animal {
// ...
}
public class Dog extends Animal {
// ...
}
public class Cat extends Animal {
// ...
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
Cat cat = new Cat();
System.out.println(animal instanceof Animal); // true
System.out.println(dog instanceof Animal); // true
System.out.println(cat instanceof Animal); // true
System.out.println(dog instanceof Dog); // true
System.out.println(cat instanceof Dog); // false
System.out.println(animal instanceof Dog); // false
System.out.println(animal instanceof Cat); // false
}
}
在上面的示例中,animal
、dog
和cat
都是Animal
類的實例,所以animal instanceof Animal
、dog instanceof Animal
和cat instanceof Animal
的結(jié)果都為true
。
而dog
是Dog
類的實例,所以dog instanceof Dog
的結(jié)果為true
,cat
不是Dog
類的實例,所以cat instanceof Dog
的結(jié)果為false
。
同理,animal
不是Dog
類的實例,所以animal instanceof Dog
的結(jié)果為false
,animal
也不是Cat
類的實例,所以animal instanceof Cat
的結(jié)果為false
。