0、前置知识:
- 继承
- 引用类型转换
1、三句话
* instanceof 关键字用法总结: * 对象(引用) instanceof 类型 例如 sons instanceof Father //true * 0.编译错误 当 类型 与 对象类型没有继承关系时 sons instanceof String * 1.返回true。 当 类型 为 对象类型的 类型或者父类类型时 sons instanceof Father或者Son * 2.返回false。 当 类型 为 对象类型的 子类型时 father instanceof Son//false
2.代码验证
public class TestInstanceof { /** * instanceof 关键字用法总结: * 对象(引用) instanceof 类型 例如 son instanceof Father //true * 0.编译错误 当 类型 与 对象类型没有继承关系时 * 1.返回true。 当 类型 为 对象类型的 类型或者父类类型时 * 2.返回false。 当 类型 为 对象类型的 子类型时 * */ public static void main(String[] args) { Father sons=new Sons(); Father f=new Father(); Object o=new Object(); String str="abc"; System.out.println("s instanceof Object: "+(str instanceof Object)); System.out.println("sons instanceof Father:"+(sons instanceof Father)); System.out.println("f instanceof Father: "+(f instanceof Father)); System.out.println("f instanceof Sons: "+(f instanceof Sons)); System.out.println("f instanceof Object: "+(f instanceof Object)); //instanceof 两边必须具有继承关系 否则编译错误 // System.out.println(s instanceof Father);两边没有继承关系 编译错误 } } class Father{} class Sons extends Father{}
public class TestInstanceof {
/**
* instanceof 关键字用法总结:
* 对象(引用) instanceof 类型 例如 son instanceof Father //true
* 0.编译错误 当 类型 与 对象类型没有继承关系时
* 1.返回true。 当 类型 为 对象类型的 类型或者父类类型时
* 2.返回false。 当 类型 为 对象类型的 子类型时
* */
public static void main(String[] args) {
Father sons=new Sons();
Father f=new Father();
Object o=new Object();
String str="abc";
System.out.println("s instanceof Object: "+(str instanceof Object));
System.out.println("sons instanceof Father:"+(sons instanceof Father));
System.out.println("f instanceof Father: "+(f instanceof Father));
System.out.println("f instanceof Sons: "+(f instanceof Sons));
System.out.println("f instanceof Object: "+(f instanceof Object));
//instanceof 两边必须具有继承关系 否则编译错误
// System.out.println(s instanceof Father);两边没有继承关系 编译错误
}
}
class Father{}
class Sons extends Father{}
运行结果: