The Java Language Specification has the following rule:
8.4.8.3. Requirements in Overriding and Hiding
If a method declaration d1 with return type R1 overrides or hides the declaration of another method d2 with return type R2, then d1 must be return-type-substitutable (§8.4.5) for d2, or a compile-time error occurs.
This rule allows for covariant return types - refining the return type of a method when overriding it.
So, even if the method hides the one of the superclass and doesn't override it, the return type must still be compatible.