鉴于:
public class X implements Z {
public String toString() { return "I am X"; }
public static void main(String[] args) {
Y myY = new Y();
X myX = myY;
Z myZ = myX;
System.out.println(myZ);
}
}
class Y extends X {
public String toString() { return "I am Y"; }
}
interface Z {}
myZ 的引用类型是什么,它引用的对象的类型是什么?
A、参考类型为Z;对象类型为 Z。
B、参考类型为Y;对象类型为 Y。
C、参考类型为Z;对象类型为 Y。
D. 引用类型为X;对象类型为 Z。
在这种情况下,我知道对象类型肯定是 Y,因为我可以使用 .getClass() 方法对其进行测试。但我不确定如何检查引用类型是什么。我假设它是 Z,但这个假设是基于直觉而不是逻辑。
谁能详细说明参考类型可能是什么以及为什么?
谢谢你。