我正在Java中尝试
instanceof
。我声明了三个类,其中一个类扩展了另一个类,如下所示:
class ParentClass {
// Class members
}
class ChildClass extends ParentClass{
// Class members
}
class OtherClass {
// Class members
}
如果 instanceof
能够像下面的前三种用法一样给出 true ,那么它就可以正常工作。但是,当与在最后一个语句中给出 false 的类一起使用时,它会给出 “不兼容的条件操作数类型错误”:
public class JavaTest{
public static void main(String[] args) {
ChildClass childObj = new ChildClass();
System.out.println(childObj instanceof ChildClass);
System.out.println(childObj instanceof ParentClass);
System.out.println(childObj instanceof Object);
System.out.println(childObj instanceof OtherClass);
}
}
这是什么原因?
你可以改成这个
public class JavaTest{
public static void main(String[] args) {
Object childObj = new ChildClass();
System.out.println(childObj instanceof ChildClass);
System.out.println(childObj instanceof ParentClass);
System.out.println(childObj instanceof Object);
System.out.println(childObj instanceof OtherClass);
}
}