Я изучаю переопределение функций-членов в JAVA и думал об экспериментировании с переопределяющими переменными-членами.Переопределение переменных элемента в Java
Итак, я определил классы
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();
}
}
Выход является:
1
I am class A
1
I am class B
Я не могу понять, почему, когда Ареф установлен б intVal еще класса А?
возможно дубликат [Плавный путаницы относительно переопределения, где переменные обеспокоены] (http://stackoverflow.com/questions/12589274/slight-confusion-regarding-overriding-where-variables-are-concerned) –
Я думаю, это не тот же вопрос, так как другой смешивает несколько особенностей языка, в то время как этот - чисто переменные, которые не являются полиморфными. –
@Vic Seedoubleyew. Но мне кажется, что это дубликат [этого вопроса] (http: // stackoverflow.com/q/7794621/1303323) –