编程语言
首页 > 编程语言> > java-传递将两个接口实现为两个不同子类型的类的实例

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