Así como se puede declarar un nuevo método de clase con la misma cabecera que el de la clase ascendiente, lo que hace que éste quede oculto. Los métodos de clase o estáticos (declarados como static) no pueden ser redefinidos. Aunque es posible que el método de la clase padre y la clase hijo se llamen igual, no se está haciendo la sobrecarga, si no que se toma como si fuera un método diferente.
Por ejemplo:
Se tiene la clase Operaciones con el método estático suma() la cual retorna la suma de dos enteros:
Su clase dervivada OperacionesCuadradas crea un método con el mismo nombre y parámetros:
En el método main se imprime el resultado del método estático suma() de la clase OperacionesCuadradas.
Y al ejecutar el código la salida será la siguiente:
A simple vista pareciera que no existe ningún error y es correcto, pero para fines de demostración, si se colocara la anotación "@Override" para indicar la sobrecarga del método, el IDE Eclipse (cualquier otro IDE o el mismo compilador) señalaría un error, porque realmente no se está redefiniendo ningún método.