2016-04-09 4 views
-1

Члены класса Java protected, объявленные в классе, видны во всем пакете. Зачем?Защита Java не защищена

Я просто хочу поделиться конфиденциальностью между моим классом и его подклассами, но Java не позволяет мне.

Что я должен делать?

+0

Пожалуйста, разместите свой код, как вы объявляете эти поля или методы? –

+2

Работайте с помощью модификаторов доступа к Java. –

+3

См. [Эта таблица] (http://stackoverflow.com/a/33627846/276052) для четкого описания области защиты. * Почему * семантика защищенных была реализована таким образом, скорее всего, только ответят разработчики языка. – aioobe

ответ

1

protected делятся также между членами пакета, поэтому вы можете переместить свой класс и его детей в отдельный пакет.

0

protected Члены Видны package и всех подклассов (защищенный). Итак, почему так удивился? ,

0

Это его предполагаемое поведение. Все поля, объявленные как protected, видны внутри класса, пакета и всех подклассов, в том числе вне пакета.