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、普通方法。