如果我有:
public interface One{
public void method1();
}
public interface Two{
public void method2();
}
public class AClass implements One, Two{
}
public static void aDiffMethod1(One o){
o.method1();
}
public static void aDiffMethod2(Two t){
t.method2();
}
public static void main(String[] args){
AClass a = new AClass();
aDiffMethod1(a);
aDiffMethod2(b);
}
有时,在我的代码中,我将使用AClass实例(它是接口One的子类型)传递一个实例(换句话说,方法的参数类型将为One,而我将传递AClass类型),而在其他时候,我可能传递AClass对象,知道它是接口Two的子类型(我传递给方法的方法的参数类型是Two,所以我将AClass作为Two的子类型传递).
以不同接口的子类型为幌子,可以将AClass实例传递给不同的方法吗?
这是通过对接口进行编程来表示的意思吗?
解决方法:
是的,这就是界面的重点.
仅接受接口One的方法将永远只调用method1,因此这是安全的.仅接受接口Two的方法将永远只调用method2,因此,这是安全的.