Ordem de inicialização (blocos estáticos, blocos e construtor)

public class Pai {
static{System.out.println(“b – static block Pai”);}
{System.out.println(“b – block Pai”);}
{System.out.println(“a – block Pai”);}
public Pai(){
System.out.println(“Constructor Pai”);
}
static{System.out.println(“a – static block Pai”);}

public static void main(String[] args){
System.out.println(“teste”);
new Neta();
}
}

class Filha extends Pai{
static{System.out.println(“b – static block Filha”);}
{System.out.println(“b – block Filha”);}
{System.out.println(“a – block Filha”);}
public Filha(){
System.out.println(“Constructor Filha”);
}
static{System.out.println(“a – static block Filha”);}
}

class Neta extends Filha{
static{System.out.println(“b – static block Neta”);}
{System.out.println(“b – block Neta”);}
{System.out.println(“a – block Neta”);}
public Neta(){
System.out.println(“Constructor Neta”);
}
static{System.out.println(“a – static block Neta”);}
}

Output

b – static block Pai
a – static block Pai
teste
b – static block Filha
a – static block Filha
b – static block Neta
a – static block Neta
b – block Pai
a – block Pai
Constructor Pai
b – block Filha
a – block Filha
Constructor Filha
b – block Neta
a – block Neta
Constructor Neta

Esta entrada foi publicada em Java com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s