gpt4 book ai didi

java - 如何使用基本接口(interface)引用调用扩展接口(interface)函数?

转载 作者:行者123 更新时间:2023-11-30 06:03:41 26 4
gpt4 key购买 nike

抱歉,如果我的问题没有任何意义。我将尝试在这里进行解释。假设我有一个像这样的基本接口(interface):

public interface SimpleInterface {
public void function1();
}

还有一个扩展接口(interface)如下:

public interface ExtendedInterface extends SimpleInterface{
public void function2();
}

假设我有一个实现 ExtendedInterface 的类:

public class Implementation implements ExtendedInterface {

@Override
public void function1() {
System.out.println("function1");
}

@Override
public void function2() {
System.out.println("function2");
}
}

现在有什么方法可以调用 function2() 当我得到一个用 Implementation 实例化的基本接口(interface) (SimpleInterface) 时> 类,像这样:

SimpleInterface simpleInterface = new Implementation();

我知道它违背了接口(interface)的目的,但它可以让我免于进行大量代码更改。

最佳答案

您必须强制转换为 ExtendedInterface,基本上:

SimpleInterface simpleInterface = new Implementation();
ExtendedInterface extendedInterface = (ExtendedInterface) simpleInterface;
extendedInterface.function2();

当然,如果 simpleInterface 引用的对象未实际上实现 ExtendedInterface,则转换将会失败。需要这样做绝对是一种代码味道 - 它可能是您可用的最佳选择,但至少值得考虑替代方案。

关于java - 如何使用基本接口(interface)引用调用扩展接口(interface)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51618384/

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