【发布时间】: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();"
请告诉我...
谢谢!
【问题讨论】:
-
他们只是想说明你可以使用对接口的引用或接口的实现,但你总是必须创建一个实现的实例而不是接口。
-
从上面的 DUP 中可能不是 100% 清楚的一点:你只是想减少你的代码对任何事情的了解。示例:有描述集合基本行为的 java.util.Set interface。然后有各种实现该接口的类。并且 99% 的时间,在某个集合对象被创建之后,你并不关心实际使用了什么样的底层类。您想要依赖的唯一事情是:它是一些实现 Set 接口的对象!