Qual roda primeiro? valores padrão para variáveis de instância ou super construtores?
De acordo com o SCJP6 (Página 507), descobri que as variáveis de instância recebem valores padrão antes da conclusão dos construtores da superclasse, tentei um exemplo no modo Debugg, mas vi que o super contratado executa antes que as variáveis da instância obtenham seus valores padrão, alguém poderia explicar isso para mim?
Exemplo que usei no caso de alguém tentar:
package courseExercise;
class test {
test() {
System.out.println("Super Constructor run");
}
}
public class Init extends test {
private Integer i = 6;
private int j = 8;
Init(int x) {
super();
System.out.println("1-arg const");
}
Init() {
System.out.println("no-arg const");
}
static {
System.out.println("1st static init");
}
public static int d = 10;
{
System.out.println("1st instance init");
}
{
System.out.println("2nd instance init");
}
static {
System.out.println("2nd static init");
}
public static void main(String[] args) {
new Init();
new Init(7);
}
}