Учитывая следующие классы:полиморфизм в классы Java
public class AA {
public int _x;
public AA() {
this(1);
}
public AA(int k) {
_x = k*10;
}
public int getX() {
return _x ;
}
}
public class BB extends AA {
public int _x;
public BB() {
this(2);
}
public BB(int k) {
super(k+1);
_x = super.getX() + 1;
}
public int getX() {
return _x;
}
}
Если я выполнить следующую операцию:
a =new BB();
Я думаю, что я должен получить значение _x на 31, но это не то, что я я получаю. В моем понимании полиморфизма значение _x должно исходить из класса AA, разве это не так?
Как 'a' объявлен? Что вы используете для изучения значения '_x'? – RealSkeptic
Значение '_x' в' BB' будет '31', а' AA' будет '30'. Разве это не то, что вы получаете? – Codebender
_... но это не то, что я получаю. Почему вы думаете, что не предоставление того, что вы действительно получаете, делает ваш вопрос более ясным, чем нам это говорит? –