(Скрытие поля) Когда имеет смысл использовать как поле подкласса, так и его скрытое поле суперкласса?
В Java (как и в большинстве языков OO) у вас может быть два класса, один расширяющий другой. Вы можете иметь поля экземпляров с одинаковыми именами в обоих классах, где поле экземпляра подкласса скрывает поле экземпляра суперкласса. Пример написан ниже.
class A{
int i;
}
class B extends A{
int i;
}
Это означает, что когда объект создается, у него есть как поле экземпляра B, так и поле экземпляра A, i. Кто-то может подумать, что вы этого никогда не захотите, и что когда вы концептуально создаете новое "i" в классе B, это означает "единственное i, которое имеет отношение к этому объекту". Когда это не так? Приведите пример двух классов, где мы хотим сохранить обе переменные экземпляра и изменить их.