instanceof 学习心得(1)-来自疯狂Java讲义一书
2015-09-20 19:09
726 查看
/*************************************** instanceof 正常编译并运行的条件是: 1. 前面的属于与后面的类形同 2. 前面的属于的类是后面的父类 instanceof 返回true的条件有: 1. 前面的 ‘是’ 后面的子类的实例 2. 前面的 ‘与’ 后面同类型的类的实例 3. 前面的 ‘实现’ 类后面的接口的实例 ****************************************/ public class TestInstanceof{ public static void main(String[] args){ //声明hello时候使用的是Object类,则hello 的编译类型是Object Object是所有类的父类 //但是hello变量实际类型是String Object hello = "Hello!!!"; //String是Object类的子类,所以可以进行instanceof运算,返回true //下面是判断 hello 是否是后面Object的子类。答案是 true System.out.println("字符串是否是Object的类实例"+(hello instanceof Object)); //hello是String类,所以返回true //下面是判断 hello 是否是后面的 String类。答案是 true System.out.println("字符串是否是String 的类实例"+(hello instanceof String)); //String实现了Comparable 所以返回true //下面是判断 hello 是否实现后面Comparable的接口。答案是 true System.out.println("字符串是否是Comparable的实例接口"+(hello instanceof Comparable)); /*************************************************** Math 是Object类的子类,所以可以进行instanceof运算,返回false hello 既不是后面 Math 的子类,也不是与它同类,没有实现Math的接口,因此返回false 因为hello 编译类型是Object,而Object是Math的父类,符合条件1,因此可以正常编译,并运行 **************************************************************************/ System.out.println("字符串是否是Math的实例"+(hello instanceof Math)); String a = "Hello!!"; /***************************************************** 因为String类型的 a 既不是后面 Math 的子类,也不是与它同类,没有实现Math的接口,因此返回false 因为String 与 Math 没有任何关系,因此下面的代码无法通关编译和运行。 *********************************************************/ //System.out.println("字符串是否是Math的实例"+(a instanceof Math)); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统