考虑 Java 中的以下类:
interface I{
}
class A implements I{
}
class B extends A {
}
class C extends B{
}
And the following declarations:
A a = new A();
B b = new B();
获得a = (B)(I) b;
代码后,将编译并运行。而且完全不明白为什么我需要转换为接口和 B 类。在我看来,如果没问题,它会起作用a = b;
。有人可以向我解释上述显式转换的逻辑是什么使代码运行良好。
但是一旦你有了I i = (C) a;
它就会在运行时失败,因为'a'不指向C类的对象。为什么'a'需要指向C类的对象?除此之外,我不明白转换为 C 类的逻辑。无论如何,您将参考 I 接口。最好的祝福