Пропустить объект подкласса в метод [duplicate]

1
задан user1012480 2 May 2012 в 10:29
поделиться

1 ответ

В Java поля не переопределены, они скрыты. Это означает, что Increase.a и SubIncrease.a являются отдельными полями, которые могут быть изменены и запрошены отдельно. Поскольку тип переменной f равен Increase, выражение f.a возвращает значение поля суперкласса. Но метод add() переопределен , а f.add() вызывает метод подкласса, который изменяет поле подкласса.

Скрытие поля редко имеет смысл, поэтому вам следует избегать его. Если вы хотите иметь поле с другим значением по умолчанию в подклассе, определите его только в суперклассе и присвойте ему значение в конструкторе подкласса.

5
ответ дан Michael Borgwardt 25 August 2018 в 16:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: