Eri*_*c T 9 java reference object
鉴于:
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 {}
Run Code Online (Sandbox Code Playgroud)
myZ的引用类型是什么,它引用的对象的类型是什么?
A.参考类型是Z; 对象类型是Z.
B.参考类型是Y; 对象类型是Y.
C.参考类型是Z; 对象类型是Y.
D.参考类型是X; 对象类型是Z.
在这种情况下,我知道对象类型肯定是Y,因为我可以用.getClass()方法测试它.但我不确定如何检查引用类型是什么.我假设它是Z,但这种假设是基于直觉而不是逻辑.
任何人都可以详细说明参考类型可能是什么以及为什么?
谢谢.
对象引用的类型在其声明时静态定义:
Z myZ = ...
Run Code Online (Sandbox Code Playgroud)
因此,引用的类型是Z,所以“C”应该是正确答案。