子類:行爲靜態塊的抽象類
public class ChildExtending extends ParentAbstract{
public int childInt =111213;
static{
System.out.println("child static block executed");
}
public ChildExtending() {
System.out.println("child const initialized");
}
public void MethodInChild(){
System.out.println("MethodInChild called");
}
public static void main(String[] args){
System.out.println(ParentAbstract.parentInt);
System.out.println(ChildExtending.parentInt);
}
}
抽象類:
public abstract class ParentAbstract {
public static int parentInt=80713;
static{
System.out.println("parent static executed");
parentInt=9;
}
public ParentAbstract(){
System.out.println("parentAbstract initialized");
}
public void MethodInParent(){
System.out.println("MethodInParent called");
}
}
主要類:
public class MainForCheck {
public static void main(String[] args){
/* ParentAbstract pa = new ParentAbstract(){
};*/
/* ChildExtending ce = new ChildExtending();
ce.childInt=5;*/
/*ChildExtending ce = new ChildExtending();
ce.childInt=5;
ce.MethodInChild();
System.out.println("pareny int is"+ce.parentInt);*/
ChildExtending ce = new ChildExtending();
ce.MethodInParent();
}
}
這給了我輸出:
父靜態執行 ]
孩子靜態塊執行
parentAbstract初始化
孩子常數初始化的
MethodInParent稱爲
爲什麼不是這樣?
父靜態執行
parentAbstract初始化
孩子靜態塊執行
孩子常數初始化
MethodInParent稱爲
明白了......謝謝:) – ALBI