Java 如何访问内置的.equal();什么被推翻了?
所以我创建了equals()方法。如果我想比较两个对象,它们只能看到这一个。如何让我的对象使用对象类中定义的对象Java 如何访问内置的.equal();什么被推翻了?,java,equals,Java,Equals,所以我创建了equals()方法。如果我想比较两个对象,它们只能看到这一个。如何让我的对象使用对象类中定义的对象 public boolean equals(Object object1) { if(a == object1) { return true; } else return false; } 如何让我的对象使用对象类中定义的对象 如果在类中不重写equals,它将默认使用在父类中声明的。如果没有最接近的父类拥有它,则对象类拥有一个将被使用的父类 但是,如果要在类的任何
public boolean equals(Object object1) {
if(a == object1) {
return true;
}
else return false;
}
如何让我的对象使用对象类中定义的对象 如果在类中不重写
equals
,它将默认使用在父类中声明的。如果没有最接近的父类拥有它,则对象
类拥有一个将被使用的父类
但是,如果要在类的任何方法中从
Object
类调用equals
,则需要使用super
,它是对父类的引用。您需要使用super.equals()
它将使用最接近的父类中的一个覆盖equals
,等等precisely@Dici:是的。@平方根:如果您的类或其任何父类(对象除外)已重写equals
方法,则默认情况下将使用Object
中的方法。对象中的equals
检查引用相等性,您可能并不真正需要它。@Square root那么使用Object
的equals
实现就没有意义了。是的,这是每个人都在试图告诉您的Object.equals
使用=
,因此您不想使用它。您必须覆盖equals
以考虑属性的值,这很简单
public static void main(String[] args) {
Compare object1 = new Compare("test");
Compare object2 = new Compare("test");
if(object1.equals(object2)
.................
}