Что происходит с защищенными членами после наследования в java?

Как и в C++, защищенные члены становились частными при частном наследовании. поэтому я очень смущен тем, что происходит в Java. здесь спецификаторы доступа остаются прежними или что? подобно

если предположить, что приведенный ниже код существует, то теперь Шива все равно останется защищенным внутри класса B? можем ли мы снова использовать его в классе C?

Любая помощь будет оценена.

package package1
class classA
{
protected shiva;
}

////////////////////////
import package1
package package2
class classB extends classA
{}

//////////////////////
import package2
class classC extends classB
{}

В Java наследование похоже на общедоступное виртуальное наследование C++. Таким образом, все модификаторы доступа останутся прежними.

Sohaib Jundi 19.07.2019 08:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
109
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Да, вы можете использовать защищенное поле в подклассе.

Модификатор защищенного доступа находится между общедоступным и модификатором доступа по умолчанию. Доступ к нему возможен вне пакета, но только через подклассы.

Обратитесь к этой ссылке для большей ясности.

https://www.tutorialride.com/core-java/inheritance-access-modifiers-in-java.htm

Так что да, вы можете использовать его в подклассах.

Да, вы можете использовать его.

            │ Class │ Package │ Subclass │ Subclass │ World
            │       │         │(same pkg)│(diff pkg)│ 
────────────┼───────┼─────────┼──────────┼──────────┼────────
public      │   +   │    +    │    +     │     +    │   +     
────────────┼───────┼─────────┼──────────┼──────────┼────────
protected   │   +   │    +    │    +     │     +    │         
────────────┼───────┼─────────┼──────────┼──────────┼────────
no modifier │   +   │    +    │    +     │          │    
────────────┼───────┼─────────┼──────────┼──────────┼────────
private     │   +   │         │          │          │    

 + : accessible         blank : not accessible

Дополнительные сведения см. в ответах на этот вопрос здесь. Мне кажется похоже.

Другие вопросы по теме