Ich untersuche übergeordnete Elementfunktionen in JAVA und dachte über das Experimentieren mit übergeordneten Membervariablen nach.Überschreiben von Elementvariablen in Java
So I definiert Klassen
public class A{
public int intVal = 1;
public void identifyClass()
{
System.out.println("I am class A");
}
}
public class B extends A
{
public int intVal = 2;
public void identifyClass()
{
System.out.println("I am class B");
}
}
public class mainClass
{
public static void main(String [] args)
{
A a = new A();
B b = new B();
A aRef;
aRef = a;
System.out.println(aRef.intVal);
aRef.identifyClass();
aRef = b;
System.out.println(aRef.intVal);
aRef.identifyClass();
}
}
Die Ausgabe lautet:
1
I am class A
1
I am class B
Ich bin nicht in der Lage zu verstehen, warum, wenn Aref gesetzt b INTVAL noch der Klasse A ist?
mögliche Duplikat von [Geringfügige Verwirrung in Bezug auf das Überschreiben, wo Variablen betroffen sind] (http://stackoverflow.com/questions/12589274/slight-confusion-regarding-overriding-where-variables-are-concerned) –
Ich denke Dies ist nicht die gleiche Frage, da der andere mehrere Merkmale der Sprache mischt, während dieser eine rein über Variablen ist, die nicht polymorph sind. –
@Vic Seedoubleyew Aber es scheint mir wie ein Duplikat zu [dieser Frage] (http: // stackoverflow.com/q/7794621/1303323) –