2
我以前的想法是,我必須編譯接口以及實現類的實現類來理解屬於接口的靜態數據。在Java中,如果一個類實現了一個接口,是否需要編譯該接口?
例如,如果接口有一個數據字段,public static final int six = 6
,如果我想使用這個類在編譯的類使用six
並運行程序,並使用six
,我必須包括編譯接口類也。
這似乎並不是這樣,實現類如何知道它沒有編譯接口的這個數據字段?
我以前的想法是,我必須編譯接口以及實現類的實現類來理解屬於接口的靜態數據。在Java中,如果一個類實現了一個接口,是否需要編譯該接口?
例如,如果接口有一個數據字段,public static final int six = 6
,如果我想使用這個類在編譯的類使用six
並運行程序,並使用six
,我必須包括編譯接口類也。
這似乎並不是這樣,實現類如何知道它沒有編譯接口的這個數據字段?
如果我想使用這個類在編譯的類使用
six
並運行程序,並使用six
,我必須包括編譯接口類也。
然而,一個static final
值將可能由Java編譯器將恆定值被內聯(在編譯時間)。你可以用類似的方式檢查字節碼
javap -v MyClass.class
我應該在字節碼中尋找什麼? – Ares
還有什麼內聯? '最後','靜態'?還是隻有在將兩者結合在一起的時候'static final'? – Ares