Какие компоненты суперкласса наследуют подклассы?

Все ли подклассы суперкласса наследуют переменные экземпляра суперкласса, конструкторы, мутаторы и методы доступа?

Предполагая, что все члены суперкласса являются общедоступными.

Да Подклассы наследуют все свойства своего родительского класса.

Qazi Ammar 03.10.2022 09:12

@QaziAmmar Я не думаю, что конструктор унаследован.

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

Ответы 1

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

Не нужно удивляться. В нашем распоряжении есть довольно полная языковая спецификация.

В частности

Класс C наследует от своего прямого типа суперкласса D все конкретные методы m (как статические, так и экземпляры), для которых выполняются все следующие условия:

  • m является участником D.
  • m является общедоступным, защищенным или объявленным с доступом к пакету в том же пакете, что и C.
  • Ни один из методов, объявленных в C, не имеет подписи, которая является субсигнатурой (§8.4.2) подписи m как члена D.

Обратите внимание на выделенный первый пункт. Потому что, говоря о конструкторах, спецификация говорит

Объявления конструктора не являются членами. Они никогда не наследуются и поэтому не подлежат сокрытию или переопределению.

Что, возвращаясь к вашему вопросу, означает, что общедоступные переменные и методы экземпляра (аксессоры и мутаторы не являются конструкцией языка Java, это просто методы) наследуются. Конструкторы - нет.

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