java 继承类 变量、静态变量、构造函数执行顺序
可以看出包含普通变量、静态变量、构造函数、继承类的执行顺序为:
1、父类的静态变量;
2、子类的静态变量;
3、父类的普通变量、父类的构造函数;
4、子类的普通变量、子类的构造函数;
5、普通方法。
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示例程序演示了在Java继承体系中,成员变量(包括静态变量)、构造函数的执行顺序。执行结果显示,首先初始化的是父类的静态变量,接着是子类的静态变量,然后是父类的普通变量及构造函数,之后是子类的普通变量及构造函数,最后调用普通方法。

被折叠的 条评论
为什么被折叠?



