protected
Теперь, когда мы понимаем концепцию наследования, ключевое слово protected
приобретает смысл. В идеальном случае, члены с уровнем доступа private
всегда остаются "частными", и никто не может к ним обращаться. Однако в реальных приложениях часто возникает необходимость скрывать некоторые вещи глубоко внутри, но при этом позволять доступ к этим членам для производных классов. Ключевое слово protected
помогает нам это сделать. Это значит, что "это само по себе является приватным, но доступно для любого объекта, который наследует этот класс, или для других объектов в том же пакете". То есть, в Java protected
становится способом достижения "дружественного" уровня доступа.
Наилучшим подходом является сохранение членов как private
, то есть всегда иметь возможность изменения деталей реализации базового класса. При этом можно использовать ключевое слово protected
, чтобы предоставить контролируемый уровень доступа для наследников:
//: Orc.java
// Ключевое слово protected
import java.util.*;
class Villain {
private int i;
protected int read() { return i; }
protected void set(int ii) { i = ii; }
public Villain(int ii) { i = ii; }
public int value(int m) { return m * i; }
}
public class Orc extends Villain {
private int j;
public Orc(int jj) { super(jj); j = jj; }
public void change(int x) { set(x); }
}
///:~
Как видно, метод change()
имеет доступ к методу set()
, так как его уровень доступа protected
(защищённый).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )