getClass()和instanceof以及类的equals方法
在比较两个类时,常见有两种做法,一种是x.getClass() == y; 一种是x instanceof y,下面我们来比较这两种做法的区别。 getClass()返回一个对象所属的类 public static void main(String[] args) { Hero h1 = new Hero(null,10,2); Hero h2 = new Hero("zhang",10,2); Superman s1 = new Superman("zhang"); System.out.println(h1.getClass()); System.out.println(h1.getClass() == h2.getClass()); System.out.println(h1.getClass() == s1.getClass()); System.out.println(s1.getClass() == h1.getClass()); }返回: class source.Hero true false false 可以看到, getClass返回的是一个类名,也就是说只会在类名相同时返回true,不会判断子类与父类的继承关系。 instanceof比较一个对象是否是该类的实例 public static void