242ea16c

Protected



Protected

Модификатор доступа protected позволяет обращаться к данным и методам класса лишь самому классу, классам, хранящимся в этой же упаковке, и унаследованным классам, но лишь в том случае, если они находятся в одной упаковке с классом-предком. Обычно такой модификатор применяют для того, чтобы закрыть доступ к данным и методам для тех классов, которые не состоят в "родственных отношениях" с защищаемым классом. Обратите внимание на то, что в Java классы считаются родственными, не только если они унаследованы друг от друга, но и просто хранятся в одной и той же упаковке.

Предположим, что в упаковке Nums имеется некий класс First и что он содержит переменную и метод, объявленные protected:

package Nums; class First

{ protected int protVar; protected void protMethod() { System.out.println("protMeth called!"); }

}

Если теперь в той же упаковке описать другой класс с именем Second, то он сможет свободно обращаться к методам и данным класса First, не обращая внимания на то, что Second не был унаследован от First:

package Nums; class Second {

void protAccessMethod() { First ap = new First(); ap.protVar = 345; ap.protMethod(); }

}

Напомню, что унаследованные классы могут беспрепятственно обращаться к данным и методам, отмеченным модификатором protected, только в том случае, если класс-предок располагается в той же упаковке, что и сами классы-наследники.



Содержание раздела