instanceif关键字

[复制链接]
发表于 2022-8-26 14:26:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
instanceof

instanceof是Java 的保留关键字。
它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。

  • 类的实例包含本身的实例,以及所有直接或间接子类的实例
  • instanceof左边显式声明的类型与右边操作元必须是同种类或存在继承关系,也就是说需要位于同一个继承树,否则会编译错误
  • instanceof关键字的左边的对象不能是基础数据类型
  • 左边的对象实例和右边的类不在同一个继承树上
简单理解,A isntanceof B:以左边类名为准,判断左右是否是存在父子关系,如果是则编译通过,否则编译报错!编译通过后,再判断A是否是B的实例对象或者B子类的对象!
因为null可以转换成为任何类型,所以不属于任何类型,instanceof结果会是false。
代码实例:
  1. public class Father {
  2. }
复制代码
  1. public class Son extends Father{
  2. }
复制代码
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         Son son=new Son();
  4.         System.out.println(son instanceof Son);
  5.         System.out.println(son instanceof Father);
  6.         System.out.println(son instanceof Object);
  7.         Object object=new Object();
  8.         System.out.println(object instanceof Father);
  9.         String str="java里面的所有类都默认继承了Object";
  10.         System.out.println(str instanceof String);
  11.         System.out.println(str instanceof Object);
  12.     }
  13. }
复制代码
输出结果:
  1. true
  2. true
  3. true
  4. false
  5. true
  6. true
复制代码
这部分比较绕,多敲点代码理解一下!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表