java中的instanceof用来判断一个类是否是另一个类的对象,即is-a关系
但是不能跨类层次,即不能比较两个不相干的类。
无法通过编译。
编译通过,打印true
将Cat由class改为interface,如下:
则编译通过,打印false
编译通过,打印true
但是不能跨类层次,即不能比较两个不相干的类。
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中instanceof关键字的使用方式及限制条件。instanceof用于检查一个对象是否为某个类的实例,支持继承关系内的类型检查,但不适用于完全不相关的类之间。同时,文中通过示例说明了当目标为接口时,instanceof表现出的不同行为。
1万+

被折叠的 条评论
为什么被折叠?



