Well, the concept of over-riding equals() is more understood if you think it in real-life terms.
Equals method should be over-ridden only when two objects need to be equal logically. Also, if you fear, somewhere in your programme an object may be re-created, then you must over-ride equals().
A very good example is String objects in java.
String string1= new String("hello");
String string2= "hello";
Are they equal?.. yes absolutely they are..logically though. You are able to check their equality only because, Java has already over-ridden String equals() method.
As we all know, a class is actually a template for its objects. So let's consider, there is an employee class, which actually determines what attributes employees in the company may hold and actual employees in the company are objects of this class. So typically, attributes of an employee may be as follows.
1.Employee Name
2.Employee ID
3.Date Of Birth
. . . .. .
. . . . .
So in this case , you should just check whether Employee ID is equal or not in your equals method. But yeah, if your objects lacks such distinct attribute, then you should go ahead and check almost all values to avoid make your programme consider two diffrent people equal.