Предположим, что у меня есть метод в Java-классе, и я не хочу, чтобы какой-либо подкласс этого класса мог переопределить этот метод. Могу ли я это сделать?
Запретить подклассы от переопределения Java-метода
Ответ 1
Вы можете объявить метод final
, как в:
public final String getId() {
...
}
Для получения дополнительной информации см. http://docs.oracle.com/javase/tutorial/java/IandI/final.html
Ответ 2
Просто сделайте метод final.
Ответ 3
Если ваш метод не является частью вашего встроенного API и не вызван напрямую подклассами, предпочитайте просто сделать свой метод private
.
Если иерархия классов содержится в одном пакете, сделайте свой метод в области пакета (без ключевого слова с указанием области). Таким образом, только внешний мир (включая ваши собственные собственные пакеты) не может получить к нему доступ и поэтому не может его переопределить.
Если ваш метод не является частью вашего API, но должен быть видимым подклассами, даже внешними, предпочитайте сделать его protected
и final
Наконец, если ваш метод является частью вашего API, сделайте его public
и final
.