gpt4 book ai didi

java - 如何将接口(interface)变量分配给子接口(interface)变量?

转载 作者:行者123 更新时间:2023-11-30 10:23:28 24 4
gpt4 key购买 nike

我有这些接口(interface):

public interface Interface {   
int functionOne();
}

public interface SubInterface extends Interface {
String functionTwo();
}

和这个类:

public class MyClass implements SubInterface {
...
}

问题来了:

Interface a = new MyClass();
SubInterface b = a;

我想将 a 寻址的 MyClass 实例分配给变量 b。我不想创建一个相同的实例,只是将现有地址从 a 转移到 b,但如果我这样做,netbeans 会给我一个关于不兼容的类型。我该怎么做?

最佳答案

目前,您的代码无法编译,因为 a 属于 Interface 类型,并且无法将其分配给 SubInterface 类型的变量。因此你需要做:

SubInterface b = (MyClass)a;

如果你考虑一下;这是完全有道理的,因为并非所有 Interface 的实现类型都实现了 SubInterface

如果您不知道实现类的实际类型,那么您可以这样做:

SubInterface b = (SubInterface) a;

哪个更安全。

关于java - 如何将接口(interface)变量分配给子接口(interface)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46990320/

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