В Java у нас есть четыре спецификатора доступа: public
, protected
, package-private (по умолчанию) и private
. Это хорошо известный и не проблема для меня.
Мой вопрос касается обозначения protected
. Как показано в таблице здесь, задавая поле, спецификатор доступа по умолчанию для private-private предотвращает использование подклассов вне пакета, но применение ключевого слова protected
doesn Фактически это защитит его. напротив, он открывает его для подклассов любого пакета.
Итак, почему protected
не защищает вещи; почему он менее ограничительный, чем никакой модификатор?