覆盖的等于和等于之间有什么区别?

时间:2019-05-01 16:29:25

标签: java

我是Java和StackOverflow的新手,但正如我所读的,关于它们等于的一些答案:

Equals方法比较两个对象的身份,如果它们是

相同,它返回TRUE。而如果您不重写方法Equals

它的作用类似于==(如果2个变量引用同一对象,则返回true)。

Integer x = new Integer(4);  

Integer y = new Integer(4); 

System.out.println(x.equals(y));  

System.out.println(x == y);

如果上面的查询是正确的,那么由于我们没有覆盖方法equals,为什么此代码会显示TRUE和FALSE?

1 个答案:

答案 0 :(得分:3)

由于类Integer确实覆盖了equals方法,因此其实现如下:

public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
}