题目
Java 中父类和子类的静态代码块、非静态代码块、构造方法的执行顺序是怎样的
答案
具体的执行顺序是:
1. 父类的静态代码块
2. 子类的静态代码块(按照继承层次由上到下依次执行)
3. 父类的非静态代码块
4. 父类的构造方法
5. 子类的非静态代码块(按照继承层次由上到下依次执行)
6. 子类的构造方法
代码示例:
```java
class Parent {
static {
System.out.println("父类静态代码块");
}
{
System.out.println("父类非静态代码块");
}
public Parent() {
System.out.println("父类构造方法");
}
}
class Child extends Parent {
static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类非静态代码块");
}
public Child() {
System.out.println("子类构造方法");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
}
}
```
