Well, technically you don't have to do anything. However, if you want to write proper reusable code,
you should adhere to the contracts.
Your class' hashCode() method may not be used right now, but it's difficult to predict in what way your class is going to be reused in the future. Especially if you release your class to the public domain. In short, classes you write should always do what they promise. And every class promises to provide a hash code that's compatible with the equals method.
And yes, providing a constant hash code for every different instance is going to hurt performance badly if you use hash tables/maps.