• 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获得类型信息采用==来进行检查是否相等的操作是严格的判断。不会存在继承方面的考虑!!!
  • 相关阅读:
    一个很好的菜单源码
    在盗版xp下安装ie7正式版 
    [导入]买新手机了
    [导入]手机解锁全集
    12种找工作方式的成功率
    Kerberos的原理 3
    Kerberos的原理 4
    Kerberos的原理 1
    jQuery 原理的模拟代码 6 代码下载
    Hashtable 中的键值修改问题
  • 原文地址:https://www.cnblogs.com/zhangwuji/p/8462812.html
Copyright © 2020-2023  润新知