- class Parent {
- // 靜態變量
- public static String p_StaticField = "父類--靜態變量";
- // 變量(其實這用對象更好能體同這一點,如專門寫一個類的實例)
- //如果這個變量放在初始化塊的後面,是會報錯的,因爲你根本沒有被初始化
- public String p_Field = "父類--變量";
- // 靜態初始化塊
- static {
- System.out.println(p_StaticField);
- System.out.println("父類--靜態初始化塊");
- }
- // 初始化塊
- {
- System.out.println(p_Field);
- System.out.println("父類--初始化塊");
- }
- // 構造器
- public Parent() {
- System.out.println("父類--構造器");
- }
- }
- public class SubClass extends Parent {
- // 靜態變量
- public static String s_StaticField = "子類--靜態變量";
- // 變量
- public String s_Field = "子類--變量";
- // 靜態初始化塊
- static {
- System.out.println(s_StaticField);
- System.out.println("子類--靜態初始化塊");
- }
- // 初始化塊
- {
- System.out.println(s_Field);
- System.out.println("子類--初始化塊");
- }
- // 構造器
- public SubClass() {
- //super();
- System.out.println("子類--構造器");
- }
- // 程序入口
- public static void main(String[] args) {
- System.out.println("*************in main***************");
- new SubClass();
- System.out.println("*************second subClass***************");
- new SubClass();
- }
- }
輸出結果
父類--靜態變量
父類--靜態初始化塊
子類--靜態變量
子類--靜態初始化塊
*************in main***************
父類--變量
父類--初始化塊
父類--構造器
子類--變量
子類--初始化塊
子類--構造器
*************second subClass***************
父類--變量
父類--初始化塊
父類--構造器
子類--變量
子類--初始化塊
子類--構造器