Junior — Middle
¿Se puede declarar un método estático de clase como final para evitar que sea sobrescrito?
sobes.tech AI
Respuesta de la IA
En Java, los métodos estáticos no pueden ser sobrescritos en clases hijas porque pertenecen a la clase en sí, no a la instancia. Por lo tanto, declarar un método estático como final no tiene sentido y sintácticamente no está permitido.
La palabra clave final se usa generalmente para métodos de instancia para impedir que sean sobrescritos en subclases. Para métodos estáticos, la sobrescritura no es posible, pero se puede ocultar un método con el mismo nombre en la subclase (esto se llama ocultación de método).
Ejemplo:
class Parent {
static void staticMethod() {
System.out.println("Método estático de Parent");
}
}
class Child extends Parent {
static void staticMethod() {
System.out.println("Método estático de Child");
}
}
Aquí, Child oculta el método de Parent, pero no lo sobrescribe. No se puede declarar final para un método estático.