我知道这是重复的问题,但是未正确提出该问题,所以我没有得到答案。
但是在一次采访中有人问我这个问题。
我想知道可能吗?如果是,任何人都可以向我提供代码吗?
提前致谢。
最佳答案
在java中,方法public boolean equals(Object obj)
从Object.class继承。由于所有Java对象都(最终)继承自Object,因此它们也都继承了该方法。但是,在Object类中定义的方法的实现是,当且仅当要比较的两个对象是同一实例时,equals
方法才会返回。
public class WrappedString {
private final String str = "hello";
}
public void foo() {
WrappedString ws1 = new WrappedString();
WrappedString ws2 = new WrappedString();
System.out.println(ws1.equals(ws2));
}
上面的代码段的输出将是
false
,因为ws1
仅等于其自身(例如,由于未覆盖equals
,因此对同一实例的其他引用)。