Который запускается первым? значения по умолчанию для переменных экземпляра или суперконструкторов?
В соответствии с SCJP6 (стр. 507) я обнаружил, что переменным экземпляра назначаются значения по умолчанию до завершения работы конструкторов суперкласса, я попробовал пример в режиме отладки, но я увидел, что суперподрядчик запускается до того, как переменные экземпляра получают свои значения по умолчанию, может кто-нибудь объяснить что для меня?
Пример, который я использовал в случае, если кто-то хочет попробовать это:
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);
}
}