Junior — Middle
É possível declarar um método estático de uma classe como final para impedir que seja sobrescrito?
sobes.tech IA
Resposta da IA
Em Java, os métodos estáticos não podem ser sobrescritos em classes derivadas porque pertencem à própria classe, não à instância. Portanto, declarar um método estático como final não faz sentido e não é permitido sintaticamente.
A palavra-chave final é geralmente usada para métodos de instância para impedir que sejam sobrescritos em subclasses. Para métodos estáticos, a sobrescrita não é possível, mas é possível ocultar um método com o mesmo nome na subclasse (isso é chamado de ocultação de método).
Exemplo:
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");
}
}
Aqui, Child oculta o método de Parent, mas não o sobrescreve. Não é possível declarar final para um método static.