The point is for you to easily specify how to differentiate between two objects of same class. Imagine two objects of type Dog. If one Dog has the same name and race as another Dog, are the two Dog's 100% identical? No. Alright, so we need to add more information. This is where you could add an owner, parents and ear marking or whatever. If all of those fields are the same, then yeah, you could say the two objects are the same (or that the two references refer to the same object).
Essentially, you want to override it to be able to specify what equality is of your class. Integer objects could be identical if they have the same value, even if they are two independent objects (located at two different addresses in memory).
Also: always override hashCode when overriding equals. This is best practice, at least. You can usually have your IDE generate those methods for you - at least this will give you an idea of what the methods could look like.