java instanceof详解

来源:互联网 发布:win10ps软件下载 编辑:程序博客网 时间:2024/05/16 06:44

    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
 

讲到这里,大家应该明白是什么意思了吧