Overriding these methods are often a result of after thoughts.We can cheat in unit testing by substituting logical equality test with a uniqueness" test, especially if the value object is immutable so that the class under test does not need to defensively copy an incoming value object to preserve invariants.As there is a fair bit of code in overriding equals(Object), it requires unit testing