我的问题与 Java 语言有关。 这是我得到的:
interface I1{}
interface I2{}
class C1 implements I1{}
class C3 extends C1 implements I2{}
什么时候
C1 01;
C3 o3;
I1 i1;
等等
现在证明 I2 i2 = (I2) i1;
是正确的,因为在运行时 i1 实际上指的是实现 I2 的对象。
但我不明白。接口(interface)之间没有关系,那么如何将其转换为相邻的接口(interface)呢?
没有更多的代码,只是为了准备Java认证而进行的演练。
最好的问候
最佳答案
如果您将 Integer
转换为 String
,编译器可以将其视为非法来阻止,但是,由于一个类可以实现多种接口(interface),因此编译器不能当您将一种接口(interface)类型转换为另一种接口(interface)类型时,不知道您是否越界了。考虑这段代码:
I1 i1 = getI1();
if (i1 instanceof I2) {
I2 i2 = (I2) i1;
}
如果 Java 编译器不允许从一个接口(interface)转换为另一个接口(interface),那么这段完全合法的代码将无法编译。
关于java - 接口(interface)之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13219097/