2015-09-11 51 views
2

我以前的想法是,我必須編譯接口以及實現類的實現類來理解屬於接口的靜態數據。在Java中,如果一個類實現了一個接口,是否需要編譯該接口?

例如,如果接口有一個數據字段,public static final int six = 6,如果我想使用這個類在編譯的類使用six並運行程序,並使用six,我必須包括編譯接口類也。

這似乎並不是這樣,實現類如何知道它沒有編譯接口的這個數據字段?

回答

0

如果我想使用這個類在編譯的類使用six並運行程序,並使用six,我必須包括編譯接口類也。

正確。

然而,一個static final值將可能由Java編譯器將恆定值被內聯(在編譯時間)。你可以用類似的方式檢查字節碼

javap -v MyClass.class 
+0

我應該在字節碼中尋找什麼? – Ares

+0

還有什麼內聯? '最後','靜態'?還是隻有在將兩者結合在一起的時候'static final'? – Ares

相關問題