大大们可以描述下,java的对象和变量初始化时的执行顺序吗?

2024-12-03 23:09:57
推荐回答(4个)
回答1:

public class TestDG {
public static void main(String[] args){
new B();
System.out.println("========================再来一次==========");
new B();
}
}

class A{
static{
System.out.println("我是老爸静态初始化块,我第1");
}
{
System.out.println("我是初始化块,我第3");
}
A(){
System.out.println("我是老爸构造器,我第4");
}
}
class B extends A{
static{
System.out.println("我是儿子静态初始化块,我第2");
}
{
System.out.println("我是儿子初始化块,我第5");
}
B(){
System.out.println("我是儿子构造器,我第6");
}
}

回答2:

执行顺序:静态成员变量初始化—静态函数—非静态成员变量初始化—非静态成员函数初始化—类的构造函数。补充:如果主类有父类或实现接口就先执行父类中的,然后再执行主类

回答3:

static变量-->static初始化块-->变量-->初始化块-->构造函数

回答4:

很详细呀!