Criação de Classe. Quem executa primeiro? Blocos estáticos, anônimos ou construtor?

class A {

static{System.out.println(“A static”);}

{System.out.println(“A init”);}

A(){System.out.println(“A constructor”);}

}

 
 

class B extends A {

static{System.out.println(“B static”);}

{System.out.println(“B init”);}

B(){System.out.println(“B constructor”);}

}

 
 

class C extends B {

static{System.out.println(“C static”);}

{System.out.println(“C init”);}

C(){System.out.println(“C constructor”);}

public static void main(String[] args){

System.out.println(“main”);

new C();

System.out.println(“after main”);

}

}

 
 

Output:

A static

B static

C static

main

A init

A constructor

B init

B constructor

C init

C constructor

after main

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