在比较一个类和另一个类是否属于同一个类实例的时候,通常可以采用instanceof和getClass两种方法比较两者是否相等来判断,但是两者在判断上面是有差别的,下面通过代码说明:

public class Test
{
  public static void testInstanceof(Object x)
  {
        System.out.println("x instanceof Parent:  "+(x instanceof Parent));
       System.out.println("x instanceof Child:  "+(x instanceof Child));
     System.out.println("x getClass Parent:  "+(x.getClass() == Parent.class));
      System.out.println("x getClass Child:  "+(x.getClass() == Child.class));
    }
    public static void main(String[] args) {
     testInstanceof(new Parent());
        System.out.println("---------------------------");
     testInstanceof(new Child());
 }
}
class Parent {
}
class Child extends Parent {
}
/*
输出:
x instanceof Parent:  true
x instanceof Child:  false
x getClass Parent:  true
x getClass Child:  false
---------------------------
x instanceof Parent:  true
x instanceof Child:  true
x getClass Parent:  false
x getClass Child:  true
*/

从程序输出可以看出,instanceof进行类型检查规则是:是否属于该类或者属于该类的派生类;而通过getClass获得类型信息采用==来进行检查是否相等的操作是严格的判断。不会存在继承方面的考虑!!!

转载于:https://www.cnblogs.com/zhangwuji/p/8462812.html

Java中instanceof与getClass的区别相关推荐

  1. java is instance of_详谈Java中instanceof和isInstance的区别

    一次性搞定instanceof和isInstance,instanceof和isInstance长的非常像,用法也很类似,先看看这两个的用法: obj.instanceof(class) 也就是说这个 ...

  2. java equals getclass_java中instanceof和getClass()的作用

    初学者难免有点混淆java中instanceof和getClass()的作用,  下面就来一一讲解. 父类A: class A { }    子类B: class B extends A { }    ...

  3. java中instanceof的用法和实战

    https://blog.csdn.net/qq_37192800/article/details/78861387 https://www.cnblogs.com/zjxynq/p/5882756. ...

  4. Java中equals()方法和==的区别分析

    Java中equals方法和==的区别分析 equals(Object obj)方法,将对象与传入的obj进行比较,相等返回true,否则返回false.equals方法和"==" ...

  5. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  6. java中ArrayList和LinkedList的区别

    首先来看ArrayList和LinkedList的集成类和接口的区别.// lang java public class ArrayList<E> extends AbstractList ...

  7. java中Runnable和Callable的区别

    文章目录 运行机制 返回值的不同 Exception处理 java中Runnable和Callable的区别 在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是ja ...

  8. java中wait和sleep的区别

    文章目录 Wait和sleep的区别 唤醒wait和sleep java中wait和sleep的区别 在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别.并讨论一下怎么使用 ...

  9. java throw与throws_基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

最新文章

  1. Perl 变量(1)--纯变量
  2. TypeError: Router.use() requires a middleware function but got a Object报错解决
  3. python库--pandas--Series.str--字符串处理
  4. Linux下实现自动设置SSH代理
  5. 实现高并发服务器之 I/O复用
  6. 用python 写网络爬虫--零基础
  7. springboot整合postgresql_SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子-阿里云开发者社区...
  8. xg push sdk android,AppCan文档中心-uexXGPush
  9. python字符串格式化符号含义及转义字符含义
  10. jQuery+bootstrap实现美化警告/确认/提示对话框插件
  11. 从0到1构建数据生态系列(二):拆解架构蓝图
  12. 【16】 数学建模 | 蒙特卡洛模拟方法 | 详细案例和代码解析(清风课程,有版权问题,私聊删除)
  13. C51与MDK共存 Keil5安装教程
  14. Windows 7无法启用网络发现的处理办法
  15. ai作文批改_网易有道词典再推AI作文批改新功能
  16. 日常(魔鬼本鬼又来了)
  17. 讯飞aiui的webapi+python使用记录
  18. 第一行代码第三版笔记
  19. 上市连续12季高增长的秘密|多肽链对话1药网于刚
  20. wget已连接但没有回应_林小宅新恋情曝光被指出轨,回应:分手后交往的,没对不起任何人...

热门文章

  1. python学习笔记(14)参数对应
  2. pdf怎么转换成word文字版
  3. 数学图形(1.34) peut aussi曲线
  4. perl语言数据类型
  5. MFC中Socket网络通讯
  6. JavaScript 代码简洁之道
  7. 【python函数】函数
  8. Docker搭建nexus3私服
  9. 【更新汇总】FastReport系列更新|附下载
  10. java正则学习笔记