java父类子类顺序_java父类子类內部程序的执行顺序

之前一致沒有認真研究這個問題,今天在研究JAVA類加載順序時突然想好好地研究研究。實驗總結如下:

step 1.父類的靜態成員和靜態塊(靜態變量和靜態塊屬同一級,自上而下執行)

step 2.子類的靜態成員和靜態塊(靜態變量和靜態塊屬同一級,自上而下執行)

step 3.父類的成員賦值和初始化塊和無static 的final成員成員 (同一級,自上而下執行)

step 4.父類的構造方法

step 5.父類構造方法中的其它語句

step 6.子類的成員賦值和初始化塊和無static 的final成員成員(同一級,自上而下執行)

step 7.子類的構造方法

step 8.子類構造方法中的其它語句

eg.

public class Test3 {

public

Test3(int num){

System.out.println("Test3構造方法:"+num);

}

}

public class Test1 {

public static Test3 test3=new Test3(5);

public Test3

test4=new Test3(6);

static{

System.out.println("static Test1");

}

{

System.out.println("no static Test1 ");

}

public

Test1(){

System.out.println("Test1構造方法");

}

}

public class Test2 extends Test1

{ static{

System.out.println("static Test2");

}

{

System.out.println(" no static Test2");

}

private

Test3 test4=new Test3(4);

private

static Test3 test3=new Test3(3);

public

Test2(){

System.out.println("Test2構造方法");

}

public

static void main(String[] args){

Test2 test2=new Test2();

}

}

執行結果:

Test3構造方法:5

static Test1

static Test2

Test3構造方法:3

Test3構造方法:6

no static Test1

Test1構造方法

no static Test2

Test3構造方法:4


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部