2013-08-30 149 views
0

以下是我嘗試運行的代碼,輸出爲Good。那麼,我們可以使用由類實現的一個接口變量?爲什麼答案是「好」?

interface IDummyInterface { 
    public String TYPE = "Good"; 
} 

class Test implements IDummyInterface { 

} 

public class MyApplication { 
    public static void main(String[] args) { 
     System.out.println(Test.TYPE); 
    } 
} 

回答

6

任何實現接口的類以及擴展實現該接口的類的任何類都會繼承所有接口變量。無論您如何在界面中聲明變量,所有接口變量都是public static final,這就是爲什麼您只能使用類名訪問它們而不是類的實例。

+1

謝謝冠軍,我明白了。乾杯 –

+0

這就是爲什麼你可以省略接口聲明中的'public',而不是冗長的。 – vertti

2

Test工具IDummyInterface。所以IDummyInterface所有變量都繼承

2

變量實際上是static final。由於它是static,它遵循與在類中聲明的所有靜態變量相同的規則,這些變量可以通過任何其他繼承自它的類來訪問。在這方面,接口表現得像類。

class StaticTestParent { public static final int VALUE = 1; } 
class StaticTestChild extends StaticTestParent { } 

static { 
    System.out.println(StaticTestChild.VALUE); 
} 
相關問題