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,C++,c,C#)