Не пойму почему System.out.println(man1.equals(man2)); выдает false, если в методе equals мы переопределили логику и this == o должно возвращать true
import java.util.Objects;
public class Man {
private String noseSize;
private String eyesColor;
private String haircut;
private boolean scars;
private int dnaCode;
public Man(String noseSize, String eyesColor, String haircut, boolean scars, int dnaCode) {
this.noseSize = noseSize;
this.eyesColor = eyesColor;
this.haircut = haircut;
this.scars = scars;
this.dnaCode = dnaCode;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
return false;
}
public String getNoseSize() {
return noseSize;
}
public void setNoseSize(String noseSize) {
this.noseSize = noseSize;
}
public String getEyesColor() {
return eyesColor;
}
public void setEyesColor(String eyesColor) {
this.eyesColor = eyesColor;
}
public String getHaircut() {
return haircut;
}
public void setHaircut(String haircut) {
this.haircut = haircut;
}
public boolean isScars() {
return scars;
}
public void setScars(boolean scars) {
this.scars = scars;
}
public int getDnaCode() {
return dnaCode;
}
public void setDnaCode(int dnaCode) {
this.dnaCode = dnaCode;
}
}
public class Test {
public static void main(String[] args) {
Man man1 = new Man("Большой", "Зеленый", "Горшок", true, 13);
Man man2 = new Man("Большой", "Зеленый", "Горшок", true, 2);
Woman woman2 = new Woman("Средний", "Синий", "Ирокес", false, 12);
System.out.println(man1.equals(woman2));
System.out.println(man1.equals(man2)); // не пойму почему тут false
}
}