java 继承类 变量、静态变量、构造函数执行顺序

class C{
static int prt(int i){
System.out.println(i);
return i;
}
}

class A{
int a=C.prt(0);
static int b=C.prt(1);
A(){
System.out.println("constructor of A");
}
}

class B extends A{
int c=C.prt(2);
static int d=C.prt(3);
B(){
System.out.println("constructor of B");
}
public void test(){
System.out.println("begin...");
}
}

public class orderTest{
public static void main(String[] args){
B b=new B();
b.test();
}
}

执行结果:

1
3
0
constructor of A
2
constructor of B
begin...

可以看出包含普通变量、静态变量、构造函数、继承类的执行顺序为:

1、父类的静态变量;

2、子类的静态变量;

3、父类的普通变量、父类的构造函数;

4、子类的普通变量、子类的构造函数;

5、普通方法。

你可能感兴趣的:(java 继承类 变量、静态变量、构造函数执行顺序)