Dane:referencyjny i Typ obiektu Zmiana listy Java
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 {}
Jaki jest typ referencyjny MYZ i jaki jest typ obiektu jest wykorzystywana?
A. Typem odniesienia jest Z; typ obiektu to Z.
B. Typem odniesienia jest Y; typ obiektu to Y.
C. Typ odniesienia to Z; typ obiektu to Y.
D. Typem odniesienia jest X; typ obiektu to Z.
W tej sytuacji wiem, że typ obiektu to na pewno Y, ponieważ mogę go przetestować za pomocą metody .getClass(). Ale nie jestem pewien, jak sprawdzić, jaki jest typ referencyjny. Zakładam, że to Z, ale to założenie opiera się na uczuciu, a nie logice.
Czy każdy może opracować, jaki może być typ odniesienia i dlaczego?
Dziękuję.
Poszedłbym z C, obiekt został utworzony z nowym Y(); i myZ jest zadeklarowane jako Z –