instanceof的用法

java中的instanceof用来判断一个类是否是另一个类的对象,即is-a关系
但是不能跨类层次,即不能比较两个不相干的类。
class Cat{}
class Fish {
  public static void main(String[] args){
   Fish t= new Fish();
   System.out.println(t instanceof Cat);
  }
}

无法通过编译。
class Cat{}
class Fish extends Cat{
  public static void main(String[] args){
   Fish t= new Fish();
   System.out.println(t instanceof Cat);
  }
}

编译通过,打印true

将Cat由class改为interface,如下:
interface Cat{}
class Fish {
  public static void main(String[] args){
   Fish t= new Fish();
   System.out.println(t instanceof Cat);
  }
}

则编译通过,打印false
interface Cat{}
class Fish implements Cat{
  public static void main(String[] args){
   Fish t= new Fish();
   System.out.println(t instanceof Cat);
  }
}

编译通过,打印true

你可能感兴趣的:(java)