2011-05-25 74 views
18

超級方法有什麼作用?super()方法做什麼?

public DataFetch(Context context) { 
    super(); 
    this.ctx = context; 
} 

此構造函數是否使新創建的對象的上下文成爲超類的上下文?不是100%確定這是如何工作的。那麼super()方法本質上只是說「讓我進入超級模式」,以非正式的方式說出來?

+1

注意它不是'方法',它是引用基類中構造函數的一種方法。 – EJP 2011-05-25 05:19:16

回答

32

它通過調用其默認構造函數說「在初始化我之前初始化我的父類」。

+0

這是否意味着在這種情況下,新對象的上下文是超類的上下文? – mergesort 2011-05-25 01:04:03

+1

不,超類沒有直接引用任何在你的類中定義的變量。你將不得不調用具有Context參數的構造函數。 – dmon 2011-05-25 01:25:04

9

super()調用父類的構造函數(一直回到Object),它在當前類的構造函數之前運行。

2

沒有「超類上下文」這樣的事情,上下文是從應用程序環境中訪問信息的接口,如圖像資源,系統服務等。上下文將來自您傳入的任何內容,並且是獨立於課程的。例如,Activity是您可能正在使用的Context接口的實現,並且您在該活動中創建的任何視圖都將具有實際上由該活動提供的相同的上下文。

0

在構造函數中使用時,關鍵字super()單獨出現,必須先使用關鍵字this才能使用。然後可以使用this關鍵字來調用父對象上的函數。

相關問題