РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
54 of 1163 menu

Ключевое слово protected

Ключевое слово protected является модификатором доступа и применяется к полям, методам, конструкторам и вложенным классам. Член класса, помеченный как protected, доступен: внутри самого класса, в котором он объявлен; внутри всех классов того же пакета; в классах-наследниках, даже если они находятся в другом пакете. В отличие от private, модификатор protected открывает доступ наследникам, а в отличие от public - скрывает член от всех остальных классов за пределами пакета. Важно помнить, что в другом пакете наследник может обращаться к protected-члену только через ссылку типа самого наследника, но не через ссылку типа родителя.

Синтаксис

protected type name; protected type name(args); protected class Name { }

Пример

Давайте объявим поле value с модификатором protected и обратимся к нему из класса-наследника в том же пакете:

public class Main { public static void main(String[] args) { Child child = new Child(); child.show(); } } class Parent { protected int value = 42; } class Child extends Parent { public void show() { System.out.println(value); } }

Результат выполнения кода:

42

Пример

Давайте объявим protected-метод print и вызовем его из класса-наследника:

public class Main { public static void main(String[] args) { Child child = new Child(); child.callPrint(); } } class Parent { protected void print() { System.out.println("abcde"); } } class Child extends Parent { public void callPrint() { print(); } }

Результат выполнения кода:

"abcde"

Пример

Давайте покажем, что protected-член доступен всем классам того же пакета, даже если они не являются наследниками:

public class Main { public static void main(String[] args) { Parent parent = new Parent(); System.out.println(parent.value); } } class Parent { protected int value = 42; }

Результат выполнения кода:

42

Смотрите также

  • ключевое слово public,
    которое открывает доступ всем классам
  • ключевое слово private,
    которое закрывает доступ всем классам
  • ключевое слово extends,
    которое создает наследование между классами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить