2011-10-11 30 views
0

我是編程新手,因此無法弄清楚這個簡單的代碼。功能調用istelf還沒有循環

我在下面的代碼中不能理解的是onCreate()正在由onCreate()本身調用,但setContentView()即下一個語句正在執行。這是怎麼發生的?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

謝謝。

回答

2

它沒有調用它自己,它調用superonCreate的實現。

有關使用super的更多信息,請參閱using the keyword 'super'

+0

你的鏈接指伊朗的一些電影! – Ricky

+0

但我們重寫了超級的'onCreate()的實現,所以不是它調用重寫的定義? – noob

+0

@瑞奇洛爾,廢話。讓我再試一次;) –

1

super.onCreate(savedInstanceState);表示它調用基類的構造函數。

該方法被調用一次,因此爲什麼setContentView執行。

也就是說,如果我正確理解你的問題。

+0

通過使用'overridde'註釋我們覆蓋了基類'onCreate()'方法,所以不是調用新的' onCreate()'方法,我們只寫了。 – noob

+0

@DevanshuPandey @ Override註解是一種描述意圖的編譯時符號;它不會更改字節碼。如果開發人員用'@ Override'標記一個方法,編譯器會檢查以確定*我們真的壓倒一切。 –