Ответ
Это модификатор protected.
Почему именно он?
В Java protected объединяет доступность package-private (элементы того же пакета) и добавляет возможность доступа для классов-наследников, даже если они находятся в других пакетах.
Практический пример:
// Файл: com/example/animal/Animal.java
package com.example.animal;
public class Animal {
protected String name; // Доступно в пакете и наследникам
protected void eat() {
System.out.println("Eating...");
}
}
// Файл: com/example/pet/Dog.java
package com.example.pet;
import com.example.animal.Animal;
public class Dog extends Animal { // Наследник из другого пакета
public void bark() {
eat(); // OK: метод protected
name = "Rex"; // OK: поле protected
}
}
Краткая сводка по модификаторам Java:
private– доступ только внутри своего класса.default(package-private) – доступ внутри пакета (модификатор не указан).protected– доступ внутри пакета + для классов-наследников.public– доступ отовсюду.