Семантика переопределения неприменима для статических полей . При доступе к VALUE
в Descendant
в качестве значения используется 100. Вы также можете ссылаться на VALUE суперкласса, используя Ancestor.VALUE
.
Теперь лучший способ избежать путаницы - это всегда обращаться к статическим членам, указав в качестве имени класса, например, Ancestor.VALUE
и Descendant.VALUE
. Среды IDE (например, eclipse) позволяли вам применять это правило, но не видели его ни в одном из инструментов статического анализа кода. Ниже приведен скриншот о том, как применить это в eclipse