可转换与否?

GAV*_*AVD -2 java

让我们说类AB继承类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.

T.J*_*der 5

如果存在"是"关系,则只能转换引用.A和之间没有"是一种"关系B.A 是一个 C,B 是一个 C,但B 不是一个 A.

考虑一下:apples(B)和oranges(A)都是fruit(C),但苹果不是橙子.


注意:在Java中,"转换"意味着"将某些东西变成其他东西".你可以转换一个Stringint,例如,通过Integer.parseInt.这不是铸造操作员的作用; 铸造操作员只是改变你对某物的参考类型,而不是实际的东西.