java-传递将两个接口实现为两个不同子类型的类的实例
作者:互联网
如果我有:
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,因此,这是安全的.
标签:oop,polymorphism,interface,java 来源: https://codeday.me/bug/20191101/1980324.html