SubClass sub = new SubClass();
這句話到底作了什麼事情呢? java
public class ParentClass { // 靜態變量 public static String staticField = "父類--靜態變量"; public String field = "父類--普通變量"; // 靜態塊 static { System.out.println(staticField); System.out.println("父類--靜態塊"); } // 初始化塊 { System.out.println(field); System.out.println("父類--普通塊"); } // 構造器 public ParentClass() { System.out.println("父類--構造器"); } }
public class SubClass extends ParentClass { // 靜態變量 public static String sstaticField = "子類--靜態變量"; // 變量 public String sField = "子類--變量"; // 靜態塊 static { System.out.println(sstaticField); System.out.println("子類--靜態塊"); } // 初始化塊 { System.out.println(sField); System.out.println("子類--普通塊"); } // 構造器 public SubClass() { System.out.println("子類--構造器"); } public static void main(String[] args) { System.out.println("順序:" + "第一次new SubClass"); SubClass sub = new SubClass(); System.out.println("順序:" + "第二次new SubClass"); new SubClass(); } }
程序執行的結果爲: code
父類–靜態變量 父類–靜態塊 子類–靜態變量 子類–靜態塊 順序:第一次new SubClass 父類–普通變量 父類–普通塊 父類–構造器 子類–變量 子類–普通塊 子類–構造器 順序:第二次new SubClass 父類–普通變量 父類–普通塊 父類–構造器 子類–變量 子類–普通塊 子類–構造器