本帖最后由 Neverbelazy 于 2013-5-17 01:39 编辑
0. 其实看到代码的结果, 应该就有了答案, 楼主只是想得到一个可以证实自己想法的出处, instanceof干啥,是JVM说了算的,具体可以看Java文档
1. instanceof 的作用是判断其左边对象(不是引用)是否为其右边类的实例(包括子类),返回boolean类型的数据
2. instanceof 可以用作判断 继承关系 和 实现关系 (实例特点),注意区别: person.getClass()== Person.class
3. 所以,参考如下简化了的代码, 就理解了instanceof 的用法就可以了- class Father{}
- interface Man{}
- class Son extends Father implements Man{}
- public class InstanceofTest{
- public static void main(String[] args{
- Son ofBitch= new Son(); // 前面引用类型改成Father/Man 结果都一样
- System.out.println(ofBitch instanceof Son);
- System.out.println(ofBitch instanceof Father);
- System.out.println(ofBitch instanceof Man);
- }
- }
复制代码 输出: true true true
参考连接: http://baike.baidu.com/view/1989052.htm |