Java 为什么';此equals方法是否正确重写object.equals方法?

Java 为什么';此equals方法是否正确重写object.equals方法?,java,equals,Java,Equals,equals方法未正确重写object.equals方法。为什么?这是因为对象中的equals()方法的签名无效 public class Person{ private String name; public Person(String name) { this.name = name; } public boolean equals (Person p){ return p.name.equals(this.name);

equals方法未正确重写object.equals方法。为什么?

这是因为
对象中的
equals()
方法的签名无效

public class Person{
    private String name;
    public Person(String name) {
         this.name = name;
    }
    public boolean equals (Person p){
         return p.name.equals(this.name);
    }
}

请注意,输入的类型是
Object
。从技术上讲,重写不能是子类型,它必须是同一类型。您的方法是重载而不是重写。

这是因为
对象中
equals()
方法的签名无效

public class Person{
    private String name;
    public Person(String name) {
         this.name = name;
    }
    public boolean equals (Person p){
         return p.name.equals(this.name);
    }
}

请注意,输入的类型是
Object
。从技术上讲,重写不能是子类型,它必须是同一类型。您的方法是重载而不是重写。

这是因为
对象中
equals()
方法的签名无效

public class Person{
    private String name;
    public Person(String name) {
         this.name = name;
    }
    public boolean equals (Person p){
         return p.name.equals(this.name);
    }
}

请注意,输入的类型是
Object
。从技术上讲,重写不能是子类型,它必须是同一类型。您的方法是重载而不是重写。

这是因为
对象中
equals()
方法的签名无效

public class Person{
    private String name;
    public Person(String name) {
         this.name = name;
    }
    public boolean equals (Person p){
         return p.name.equals(this.name);
    }
}

请注意,输入的类型是
Object
。从技术上讲,重写不能是子类型,它必须是同一类型。您的方法是重载而不是重写。

方法的签名是

public boolean equals(Object o)

如果你想一想,那是因为你可能想将对象与不同类型的对象进行比较。

方法的签名是

public boolean equals(Object o)

如果你想一想,那是因为你可能想将对象与不同类型的对象进行比较。

方法的签名是

public boolean equals(Object o)

如果你想一想,那是因为你可能想将对象与不同类型的对象进行比较。

方法的签名是

public boolean equals(Object o)

如果你考虑一下,那是因为你可能想将对象与不同类型的对象进行比较。

方法
equals
接收一个
对象,而不是
,对于任何不是
实例的参数,都应该返回
false
。例如:

public boolean equals(Object other);

equals
方法接收的是一个
对象,而不是
,对于任何不是
实例的参数,都应该返回
false
。例如:

public boolean equals(Object other);

equals
方法接收的是一个
对象,而不是
,对于任何不是
实例的参数,都应该返回
false
。例如:

public boolean equals(Object other);

equals
方法接收的是一个
对象,而不是
,对于任何不是
实例的参数,都应该返回
false
。例如:

public boolean equals(Object other);
语法是什么

但是记住也要重写hashcode方法

语法是什么

但是记住也要重写hashcode方法

语法是什么

但是记住也要重写hashcode方法

语法是什么


但是记住也要重写hashcode方法。

重写方法时,所有内容都应该与您试图重写的方法相同

在您的例子中,equals方法正在使用Person,但它最初采用对象类型

重写方法具有相同的名称、编号和类型 参数,并将返回类型作为其重写的方法


引用:

重写方法时,所有内容都应与尝试重写的方法相同

在您的例子中,equals方法正在使用Person,但它最初采用对象类型

重写方法具有相同的名称、编号和类型 参数,并将返回类型作为其重写的方法


引用:

重写方法时,所有内容都应与尝试重写的方法相同

在您的例子中,equals方法正在使用Person,但它最初采用对象类型

重写方法具有相同的名称、编号和类型 参数,并将返回类型作为其重写的方法


引用:

重写方法时,所有内容都应与尝试重写的方法相同

在您的例子中,equals方法正在使用Person,但它最初采用对象类型

重写方法具有相同的名称、编号和类型 参数,并将返回类型作为其重写的方法


参考资料:

您是否尝试添加
@Override
注释,并查看编译器是否投诉?从Object类继承的equals方法的签名是什么?为了重写,它需要使用
对象
编写一个正确的
equals
函数实际上比看起来更困难,特别是如果
Person
可以稍后再进行子类化。请参阅。您是否尝试添加
@Override
注释,并查看编译器是否投诉?从Object类继承的equals方法的签名是什么?为了重写,它需要使用
对象
编写一个正确的
equals
函数实际上比看起来更困难,特别是如果
Person
可以稍后再进行子类化。请参阅。您是否尝试添加
@Override
注释,并查看编译器是否投诉?从Object类继承的equals方法的签名是什么?为了重写,它需要使用
对象
编写一个正确的
equals
函数实际上比看起来更困难,特别是如果
Person
可以稍后再进行子类化。请参阅。您是否尝试添加
@Override
注释,并查看编译器是否投诉?从Object类继承的equals方法的签名是什么?为了重写,它需要使用
对象
编写一个正确的
equals
函数实际上比看起来更困难,特别是当
Person