1.無(wú)繼承
public class uExtend {
public static void test(){
System.out.println("父類--靜態(tài)方法");? //被子類的相同方法覆蓋
}
static {
System.out.println("父類--靜態(tài)代碼塊");
}
public uExtend() {
System.out.println("父類--構(gòu)造函數(shù)");
}
{
System.out.println("父類--非靜態(tài)代碼塊");
}
public static void main(String[] args) {
uExtend.test();
new uExtend();
}
}
執(zhí)行結(jié)果:靜態(tài)代碼塊>靜態(tài)方法>非靜態(tài)代碼塊>構(gòu)造函數(shù)
如果主函數(shù)中調(diào)用方法在新建對(duì)象之后的話窃爷,那么靜態(tài)方法就在最后執(zhí)行
2.有繼承
public class ExA {
public static void test(){
System.out.println("父類--靜態(tài)方法"); //被子類的相同方法覆蓋
}
static {
System.out.println("父類--靜態(tài)代碼塊");
}
public ExA() {
System.out.println("父類--構(gòu)造函數(shù)");
}
{
System.out.println("父類--非靜態(tài)代碼塊");
}
}
class ExB extends ExA {
public static void test(){
System.out.println("子類--靜態(tài)方法");
}
static {
System.out.println("子類--靜態(tài)代碼塊");
}
{
System.out.println("子類--非靜態(tài)代碼塊");
}
public ExB() {
System.out.println("子類--構(gòu)造函數(shù)");
}
}
public static void main(String[] args) {
new ExB();
ExB.test();
}
運(yùn)行結(jié)果:
父類--靜態(tài)代碼塊
子類--靜態(tài)代碼塊
父類--非靜態(tài)代碼塊
父類--構(gòu)造函數(shù)
子類--非靜態(tài)代碼塊
子類--構(gòu)造函數(shù)
子類--靜態(tài)方法