0

Почему приватные методы не могут быть финальными?

98

Вопрос: Избыточно ли использовать private и final одновременно для одного метода?

Я нашел следующий код в классе:

class SomeClass {

    //--snip--

    private final void doStuff()
    {
        // private work here
    }
}

Если метод private, то никто не сможет его переопределить, верно?

Почему же возможно использовать ключевое слово final, если оно, по сути, не имеет эффекта в данном случае? (Или я чего-то не понимаю?)

1 ответ(ов)

0

Причина, по которой это разрешено, заключается в том, что в Java не сочли нужным добавлять специальный случай, запрещающий использовать модификатор private. Это похоже на ситуацию с методами в интерфейсах, которые можно объявлять как public, или вложенными классами в интерфейсах, которые могут быть объявлены как static, хотя эти ключевые слова подразумеваются по умолчанию. Также можно объявлять методы как final в классе, который уже объявлен как final и так далее.

Java придерживается подхода, согласно которому не стоит возражать против добавления избыточных модификаторов. Это делается последовательно.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь