package study;
public class TestCus {
public static void main(String[] args) {
new Child();
}
}
class Parent{
Out out = new Out();
static {
System.out.println("父类静态代码块");
}
public Parent(){
System.out.println("父类构造函数");
}
{
System.out.println("父类代码块");
}
}
class Child extends Parent{
static {
System.out.println("子类静态代码块");
}
public Child(){
System.out.println("子类构造函数");
}
{
System.out.println("子类代码块");
}
Out out = new Out();
}
class Out{
public Out(){
System.out.println("out");
}
}
最终结果:
得出结论:
1、父类静态变量和静态代码块(先声明的先执行);
2、子类静态变量和静态代码块(先声明的先执行);
3、父类的变量和代码块(先声明的先执行);
4、父类的构造函数;
5、子类的变量和代码块(先声明的先执行);
6、子类的构造函数。