instanceof用来判断某个对象是不是这个类的实例并返回一个布尔值。如果是,则返回true,否则返回false。在运算时,会做一个自动类型兼容的处理。类的对象与类作instanceof操作会返回true;子类对象与父类作instanceof操作返回true;所有对象与Object作instanceof操作返回的都是true。
package JAVA_Project_01_05;
public class TextInstanceOf {
static class ObjectA {
static String A = "Object";
}
static class ObjectB extends ObjectA {
static void showInfo() {
System.out.printf("超类的静态属性%s的值:%s%n", "A", A);
}
}
public static void main(String[] args) {
ObjectA a = new ObjectA();
ObjectB b = new ObjectB();
if (a.A instanceof Object){
System.out.println("静态属性A是Object类型");
}else{
System.out.println("静态属性A不是Object类型");
}
if (a.A instanceof String){
System.out.println("静态属性A是String类型");
}else{
System.out.println("静态属性A不是String类型");
}
if (null instanceof Object) {
System.out.println("null是Object类型");
} else {
System.out.println("null不是Object类型");
}
if (a instanceof ObjectA) {
System.out.println("对象a是ObjectA类型");
} else {
System.out.println("对象a不是ObjectA类型");
}
if (b instanceof ObjectA) {
System.out.println("对象b是ObjectA类型");
} else {
System.out.println("对象b不是ObjectA类型");
}
if (a instanceof ObjectB) {
System.out.println("对象a是ObjectB类型");
} else {
System.out.println("对象a不是ObjectB类型");
}
if (b instanceof ObjectB) {
System.out.println("对象b是ObjectB类型");
} else {
System.out.println("对象b不是ObjectB类型");
}
}
}