判断两个对象是否为同一类型,时常用到getclass 和 instanceof ,而这两个函数又是时常让人混淆。下面从一个例子说明两者的区别:

public class Test_drive {

    public static void main(String[] args){
A a = new A();
B b = new B(); System.out.println(b.getClass().equals(A.class));
System.out.println(b.getClass().equals(B.class)); System.out.println(b instanceof A);
System.out.println(b instanceof B);
}
}
class A{ }
class B extends A{ }

在这里,上面四个语句分别输出:false , true , true , true

为什么呢?因为,instanceof判断是否是某一类型的实例时,该类型可以是父类或者接口。而getclass 用于判断准确的类型。

同时,在这里必须说明的是,getclass判断的是该变量实际指向的对象的类型(即运行时类型),跟声明该变量的类型无关。即,上面的代码中:

B b = new B();
改为
A a = new B();

各语句结果不变。

最新文章

  1. JsonFormatter PrettyPrint
  2. mysql varchar类型使用心得
  3. 委托(C# 编程指南)
  4. 一款jQuery实现重力弹动模拟效果特效,弹弹弹,弹走IE6
  5. 关于table元素的认识
  6. Javascript引擎单线程机制及setTimeout执行原理说明
  7. redis神器
  8. JAVA中调用CMD命令,并输出运行结果
  9. 现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)
  10. 详细介绍Spring 5的那些新特性与增强
  11. Github泄露扫描系统
  12. Visual Stdio 2017增加SVN支持
  13. Javascript高级编程学习笔记(63)—— 事件(7)鼠标及滚轮事件
  14. xml模块 增删改查
  15. 2019微软Power BI 每月功能更新系列——2月Power BI 新功能学习
  16. Win10系列:JavaScript小球运动示例
  17. 模拟实现strncpy,strncat,strncmp
  18. 外观模式face
  19. selinux 导致ftp文件夹出错~
  20. cJSON精度丢失问题

热门文章

  1. SkipList 之详细分析
  2. Mac进度条卡在100%
  3. python -- 简单配置发送邮件功能
  4. 基于CentOS-6.9_x64系统QT环境搭建
  5. Qt——styleSheet
  6. go内建容器-字符和字符串操作
  7. Git项目的目录结构
  8. [WebService] 使用httpWebrequest 调用并调试WebService
  9. 重庆Uber优步司机奖励政策
  10. CC2541广播机制和代码分析(未完成)