2012-03-24 39 views
1

這是關於Java的一個非常基本的問題。我讀過一些地方,首先在子類的構造函數中,超類的構造函數被隱式調用。但是我找不到文檔的參考資料,請詳細閱讀。有人可以提供這個參考嗎?繼承類中的構造函數調用

這裏是我說的,是輸出super sub字符串的示例:

class SuperClass { 
    static String s = ""; 
    protected SuperClass() { s += "super "; } 
} 

public class SubClass extends SuperClass { 
    private SubClass() { s += "sub"; } 
    public static void main(String[] args) { 
     new SubClass(); 
     System.out.println(s); 
    } 
} 

回答

7

有沒有在Java中重載構造函數 - 他們不叫多態下手。

但是每個構造有以調用超類的構造函數,隱式(調用無參數的一個)或顯式地(與super(...)作爲構造體的第一行 - 鏈到另一個構造相同的類中,與this(...)作爲構造體的第一道防線。鏈式構造函數的構造體的其餘部分之前執行。

更多細節請section 8.8.7 of the Java Language Specification

+0

你說得對,我已經改變了措辭爲「子類的構造函數「,然後再閱讀你的答案。謝謝你的鏈接。 – 2012-03-24 20:38:04