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