2017-01-17 63 views
0

我現在正在學習JAVA。 當我們把界面這個樣子,有時我們創建對象這樣爲什麼我們在JAVA中使用這段代碼?

示例代碼: -

interface test01{ 
    public boolean A(int i); 
    public int B(int a); 
    public String C (String c); 
} 


class ttt implements test01{ 

    public boolean A(int a){ 
     return true; 
    } 

    public int B(int a){ 
     return a; 
    } 

    public String C(String c){ 

     return c; 
    } 

} 

public class Interface_test { 

    public static void main(String[] args) { 
     ttt t1 = new ttt(); 
     System.out.println(t1.A(1)); 
     System.out.println(t1.B(1)); 
     System.out.println(t1.C("C")); 

     test01 tt = new ttt(); 
     System.out.println(tt.A(1)); 
     System.out.println(tt.B(1)); 
     System.out.println(tt.C("C")); 

    } 

} 

爲什麼我們使用這樣

模式這段代碼的結果是相同的 但我想知道
"test01 tt = new ttt();" 

,而不是

"ttt t1 = new ttt();" 

請讓我知道...

謝謝!

+0

請參閱此鏈接:[Interface as a type in Java?](http://stackoverflow.com/questions/7275844/interface-as-a-type-in​​-java) –

+0

他們只是想解釋你可以使用對接口的引用或接口的實現,但是你總是必須創建一個實現的實例而不是接口。 – cralfaro

+1

從上面的DUP可能不是100%清楚的一點:你只是想**減少你的代碼對任何東西的知識。例如:有一個java.util.Set **接口**,用於描述集合的基本行爲。然後有各種類實現該接口。在99%的時間裏,**創建了一些設置對象之後,您並不在乎實際使用的是什麼樣的**底層**類。您要**的唯一依賴**是:它是一些對象實現Set接口! – GhostCat

回答

0

接口被用作類型來允許實現在未來交換,而不必擔心在使用接口的其他類中更改方法簽名或實現。

如果您沒有使用接口,則必須使用舊的實現重新訪問所有類,並將其更改爲使用新的實現。

接口也被用作抽象來隱藏實現類的邏輯從接口的用戶。

相關問題