【问题标题】:Why do we use this code in JAVA? [duplicate]为什么我们在 JAVA 中使用这段代码? [复制]
【发布时间】:2017-01-17 13:42:23
【问题描述】:

我现在正在学习 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();"

请告诉我...

谢谢!

【问题讨论】:

  • 参考此链接:Interface as a type in Java?
  • 他们只是想说明你可以使用对接口的引用或接口的实现,但你总是必须创建一个实现的实例而不是接口。
  • 从上面的 DUP 中可能不是 100% 清楚的一点:你只是想减少你的代码对任何事情的了解。示例:有描述集合基本行为的 java.util.Set interface。然后有各种实现该接口的类。并且 99% 的时间,某个集合对象被创建之后,你并不关心实际使用了什么样的底层类。您想要依赖的唯一事情是:它是一些实现 Set 接口的对象!

标签: java interface


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2019-11-28
    • 1970-01-01
    相关资源
    最近更新 更多