/*No livro "Certificação Java 5 Guia Preparatório ..." encontra-se na página 37 a seguinte informação:
"métodos static não podem ser sobrepostos, pois são invocados pela própria class e não pelo objeto"
No entanto no código abaixo aparentemente contradiz o que o livro argumenta. Estou interpretanto errado o livro?
Desde já agradeço*/
class TesteX {
static void method() {
System.out.println("TesteX static method");
}
}
public class Teste extends TesteX {
static void method() {
System.out.println("Teste static method");
}
public static void main(String ... args) {
method();
new Teste().method();
}
}
Dúvida a respeito de sobreposição
4 Respostas
Na verdade nada indica q vc esteja realizando um overload do metodo, ate porque ainda na classe, vc estendeu o metodo, mas nao realizou sobrecarga. E disso q estamos falando?
Não existe sobrescrita de metodos static.
Você pode definir dois metodos em classes diferentes com o mesmo nome,
mas são dois metodos totalmente diferentes…
Isso compila e roda normal, e ele chama o metodo da referencia.
Isso é uma pegadinha que caiu no meu exame, ainda bem que eu sabia a resposta.
Mas para quem está começando a estudar pode ser um pouco ambiguo.
Mas boa sorte na sua certificação… 
Oi. Isto se chama hiding e pode ser confundido com subscricao.
Mesmo que cv faca uma chamada assim
Test meuTest = new TestX();
meuTest.metodo();
O metodo static chamado eh o da classe Test
Pois eh a mesma coisa que
Test.metodo();
Obrigado pelas respostas