Such method names may be confusing because the method in the subclass may look like an override when in fact it hides the inaccessible method of the superclass. Moreover, if the visibility of the method in the superclass changes later, it may either silently change the semantics of the subclass or cause a compilation error.
A quick-fix is suggested to rename the method.
Example:
public class Super {
private void test() {
}
}
public class Sub extends Super {
void test() { // making 'Super.test()' public causes a compilation error
// making 'Super.test()' package-private makes 'Sub.test()' an override
}
}