gpt4 book ai didi

java - 传递将两个接口(interface)实现为两个不同子类型的类的实例

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:29 27 4
gpt4 key购买 nike

如果我有:

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 的实例,因为它是接口(interface) One 的子类型(换句话说,方法的参数类型将是 One,我将传递 AClass 类型)和其他有时我可能会传递 AClass 对象,知道它是接口(interface) Two 的子类型(我传递给的方法的参数类型是 Two,所以我将 AClass 作为 Two 的子类型传递)。

假装是不同接口(interface)的子类型,将 AClass 的实例传递给不同的方法是否可以?

这就是他们所说的对接口(interface)进行编程的意思 - 所以没问题吗?

最佳答案

是的,这就是接口(interface)的全部意义。

只接受接口(interface) One 的方法只会调用 method1,所以这是安全的。只接受接口(interface) Two 的方法只会调用 method2,所以这也是安全的。

关于java - 传递将两个接口(interface)实现为两个不同子类型的类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11816640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com