java中instanceof与getClass的不同之处
下文笔者讲述java中instanceof和getClass的区别,如下所示:
instanceof和getClass都可用于比较两个对象是否属于同一个类的实例 但是 instanceof检测一个类的父类和子类(检测类和派生类),都会返回true 但是getClass是返回具体的字符串,只做严格的类判断例:
public class Test { /* *java265.com 示例分享 */ 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 */
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。