child.a
тени (или скрывает ) parent.a
.
Это легальная Java, но ее следует избегать. Я ожидаю, что у вашей IDE будет возможность предупредить вас об этом.
Обратите внимание, что это только проблема, потому что вы уже выставили миру * переменную . Если вы убедитесь, что все ваши переменные являются частными для начала (отделяя API методов от реализации полей), тогда не имеет значения, имеют ли родительский и дочерний элементы одинаковые имена полей - дочерний не иметь возможность видеть поля родителей в любом случае. Это может привести к путанице, если вы переместите метод с дочернего на родительский, и, как правило, он не очень удобен для удобства чтения, но лучше, чем скрывающая ситуация.