Sobes.tech
Middle
188

Може ли да се снизи ниво модификатора приступа у Јави?

Одговор од АИ

sobes.tech АИ

В Java нельзя понижать уровень доступа при переопределении метода в подклассе. Это значит, что если в суперклассе метод объявлен с определённым уровнем доступа (например, public), то в подклассе он не может стать protected или private.

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

Пример:

class Parent {
    public void doSomething() {}
}

class Child extends Parent {
    // Ошибка компиляции: нельзя сузить видимость
    // protected void doSomething() {}
}

Таким образом, уровень доступа при переопределении можно только расширять или оставлять таким же, но не уменьшать.