让我们说类A和B继承类C.
public class A extends C {}
public class B extends C {}
Run Code Online (Sandbox Code Playgroud)
我们如何转换类型,即
A a;
B b;
a = (A) b;
Run Code Online (Sandbox Code Playgroud)
我尝试了,但它宣布了error: inconvertible type.
如果存在"是"关系,则只能转换引用.A和之间没有"是一种"关系B.A 是一个 C,B 是一个 C,但B 不是一个 A.
考虑一下:apples(B)和oranges(A)都是fruit(C),但苹果不是橙子.
注意:在Java中,"转换"意味着"将某些东西变成其他东西".你可以转换一个String到int,例如,通过Integer.parseInt.这不是铸造操作员的作用; 铸造操作员只是改变你对某物的参考类型,而不是实际的东西.