相关疑难解决方法(0)

覆盖子类中的equals()和hashCode()...考虑超级字段

是否有关于如何重写特定规则equals()hashCode()子类考虑超领域?知道有很多参数:超级字段是私有/公共的,有/无getter ...

例如,Netbeans生成的equals()&hashCode()将不考虑超级字段...和

    new HomoSapiens("M", "80", "1.80", "Cammeron", "VeryHot").equals(
    new HomoSapiens("F", "50", "1.50", "Cammeron", "VeryHot"))
Run Code Online (Sandbox Code Playgroud)

将返回true :(

public class Hominidae {

    public String  gender;
    public String  weight;
    public String  height;

    public Hominidae(String gender, String weight, String height) {
        this.gender = gender;
        this.weight = weight;
        this.height = height;
    }
    ... 
}

public class HomoSapiens extends Hominidae {
    public String name;
    public String faceBookNickname;

    public HomoSapiens(String gender, String weight, String height, 
                       String name, String …
Run Code Online (Sandbox Code Playgroud)

java inheritance overriding equals hashcode

62
推荐指数
4
解决办法
5万
查看次数

标签 统计

equals ×1

hashcode ×1

inheritance ×1

java ×1

overriding ×1