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

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)