2013-11-01 42 views
1

誰能告訴我這兩個代碼的主要區別是什麼?這些代碼片段有什麼區別?

代碼1:

 Fragment fragment = new NaviagtionFragment(); 
       fragmentTransaction.replace(R.id.pager, fragment); 
       fragmentTransaction.commit(); 

代碼2:

NavigationFragment fragment = new NavigationFragment(); 
       fragmentTransaction.replace(R.id.pager, fragment); 
       fragmentTransaction.commit() 
+0

@Raghunandan現在看到,我更新了這些問題 – Asthme

+0

你的實際問題是什麼碼? – fasteque

+0

@fasteque我只想知道我的代碼是如何工作的?沒有問題。 – Asthme

回答

3

兩個選項實例化一個NavigationFragment並更換它裏面pager之一。所以在運行時沒有任何區別。

唯一的區別是在編譯時關於方法/實例變量的可見性。

聲明

Fragment fragment 

你不會看到自定義的方法/的NavigationFragment實例變量。但是,如果你沒有做任何其他的事情,第一個選項是完全正確的。

3

在第一種情況下,您將對象分配給基類,第二種情況是派生類。主要區別在於,你不能訪問派生的方法和屬性在第一種情況下,但只有一個從基本類型(沒有演員)