2017-01-17 66 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

接口被用作类型来允许实现在未来交换,而不必担心在使用接口的其他类中更改方法签名或实现。

如果您没有使用接口,则必须使用旧的实现重新访问所有类,并将其更改为使用新的实现。

接口也被用作抽象来隐藏实现类的逻辑从接口的用户。

相关问题