關(guān)于繼承的一個問題
public?class?demo1?{ public?static?int?b=10; public?demo1(){ b=1; } static{ b=2; } }
這是第二個
public?class?Demo2?extends?demo1{ ????public?static?void?main(String[]?args)?{ demo1?d=new?demo1(); System.out.println(d.b); } }
為什么結(jié)果是1不是2,不是說static的初始化塊里面的b會覆蓋構(gòu)造器的b么?
2016-05-05
static 初始化快在構(gòu)造器前先執(zhí)行,不會覆蓋..
2017-07-13
執(zhí)行順序,普通初始化>static初始化>構(gòu)造函數(shù)初始化。構(gòu)造這個最后執(zhí)行。
2016-07-09
注意順序
2016-07-09
public?class?Demo2?extends?demo1{
????public?static?void?main(String[]?args)?{
????????demo1?d=new?demo1();
????????System.out.println(d.b);
????}
}
在調(diào)用靜態(tài)變量時,無需創(chuàng)建對象進行調(diào)用,
public class Demo2 extends Demon1{
? ? ?public static void main(String[]args){
? ? ? ? ?System.out.println("靜態(tài)初始化塊中變量"+d);
}
}
2016-05-10
執(zhí)行順序是static代碼塊,然后是構(gòu)造方法,然后是普通方法。