zoukankan      html  css  js  c++  java
  • Java中instanceof与getClass的区别

    在比较一个类和另一个类是否属于同一个类实例的时候,通常可以采用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获得类型信息采用==来进行检查是否相等的操作是严格的判断。不会存在继承方面的考虑!!!
  • 相关阅读:
    Leetcode第七题——数的反转
    Leetcode第六题——横向遍历ZIGZAG数组
    26 将查询结果插入到一张表中?
    25 表的复制
    24 insert 语句插入数据
    23 创建表
    22 limit(重点中的重点,以后分页查询全靠它了。)
    21 union(可以将查询结果集相加
    20 子查询
    19 连接查询
  • 原文地址:https://www.cnblogs.com/zhangwuji/p/8462812.html
Copyright © 2011-2022 走看看