2015-02-23 85 views
-4

我知道在Java中創建子類時會調用super函數。但是超級在每個構造函數中調用,還是僅在子類的第一個構造函數中調用?在Java構造函數中調用超級函數

感謝

+4

請給你的問題的一個具體的例子,最好有一些說明什麼你已經嘗試過爲自己回答它。 – 2015-02-23 17:00:25

+0

請注意,您不需要在所有情況下都調用super。舉例說明你的意思。 – m0skit0 2015-02-23 17:00:28

+0

第一個構造函數是什麼意思? – kraskevich 2015-02-23 17:00:41

回答

0

您可以從同一類這樣調用另一個構造:

MyClass的(INT someValue中){ 這個(someValue中,假); .... }

在這種情況下,超級構造函數沒有被調用,但它會在第一個構造函數中調用,它不會從類中調用另一個構造函數。

1

但是在每個構造函數中超級調用,還是僅在子類的第一個構造函數 ?

首先有沒有像第一構造第二個構造,由於構造通話將基於對象的創建。

,如果你創建對象這樣

new MyClass(); //then no-argument constructor will be called 

,如果對象以這種方式

new MyClass("ABC");// then parameterized constructor will be called 

所以super()創建被稱爲在每一個構造函數中的第一行。

注意:如果你明確地調用其他構造函數使用this()然後在那種情況下super()同一類將不會在現有的構造方法中調用

相關問題