Esse recurso existe, mas é obscuro e não deve ser usado sem uma BOA razão. (Isso é uma sutileza que felizmente não caiu na minha prova).
Agora o bloco static {} (como o static { System.out.println(“Static”); } ) é relativamente bastante usado, porque com ele é possível inicializar variáveis estáticas com chamadas de funções que lançam exceções.
sergiolpf
A parte de chamada implicita a superclasse eu sabia. Não sabia a parte de inicialização do bloco static… ainda não cheguei nesse capitulo hehehe
Valeu galera…
I
igorps
Na verdade…pelo menos no java 1.5 os resultados são :
Static
Pai
Bloco
A
…isto ocorre pq a primeira coisa que acontece ao entrar no construtor…eh a chamada do construtor da classe pai (super())…após a chamada do construtor da classe pai…os blocos normais (sem ser o static)da classe filha sao invocados…dai resultando na impressão de “bloco” após “pai”.
sakurai
Isso ae pessoal.
Só lembrando que se tivesse mais blocos { } (não static) eles seriam executados na ordem em que eles aparecem no codigo.