instanceof是Java的一个二元操作符,和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。可以用在继承中的子类的实例是否为父类的实现。相当于c#中的is操作符。这个运算符是JAVA从C语言保留下来的关键字,所以它不是一个方法。它是C语言底层的一个运算符。它不需要逻辑,它就是提供给你一个功能。就像加减乘除一样。下面用程序来表达意思吧。
public interface A{}
public class B implements A{
public static void main(String[] args){
A a=null;
B b=null;
if(a instanceof A){
System.out.println("true 1");
}
else{
System.out.println("false 1");
}
if(b instanceof B){
System.out.println("true 2");
}
else{
System.out.println("false 2");
}
a=new B();
if(a instanceof A){
System.out.println("true 3");
}
else{
System.out.println("false 3");
}
if(a instanceof B){
System.out.println("true 4");
}
else{
System.out.println("false 4");
}
b=new B();
if(b instanceof A){
System.out.println("true 5");
}
else{
System.out.println("false 5");
}
if(b instanceof B){
System.out.println("true 6");
}
else{
System.out.println("false 6");
}
}
}
输出结果是:
false 1
false 2
true 3
true 4
true 5
true 6
讲到这里,大家应该明白是什么意思了吧