1 A instanceof B,结果为boolean.A通常是一个引用变量,B为类或者接口。如果A是B的一个实例对象或者B子类的实例对象,结果为true。
1.2 B为类时
A的运行时类型是B的子类或者就是B本身,运算结果为true。
public class Test {
public static void main(String[] args) {
Father f = new Father();
Father f2 = new Son();
System.out.println(f instanceof Father);//true
//f的运行是类型Fther不是Son的子类
System.out.println(f instanceof Son);//false
//f2的运行是类型Son是Father的子类
System.out.println(f2 instanceof Father);//true
//f2的运行时类型Son,是Son本身类型
System.out.println(f2 instanceof Son);//true
}
}
class Father{
}
class Son extends Father{
}
1.3 B为接口
A的运行时类型为B接口的实现类或者B接口实现类的子类时,运算结果为true.
网友评论