2016-04-12 3 views
-5

В Java, в подклассе, как может супер() или не частные методы, которые были определены в суперкласс доступа частных членов суперкласса,Являются ли частные члены суперкласса также экземплярами, когда создается подкласс?

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

+2

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

+0

Да, конечно. –

+0

У вас есть фундаментальное недоразумение. Частный - это модификатор доступа. Частные члены * наследуются. – Dave

ответ

2

Закрытые поля не наследуются, но они существуют. Это действительно зависит от того, что вы подразумеваете под «унаследованным» здесь, и JLS (например, в 8.2) - я считаю - ссылаясь на то, какие члены могут быть просмотрены с помощью разрешения члена в отношении подкласса. Частные члены не могут решить в этом смысле, но поля все еще существуют.

Состояние экземпляра подкласса состоит из всех полей, объявленных во всей цепочке наследования.

+0

Спасибо за ответ Jon, что означает «унаследованный», который должен означать ? – Abhishek

+0

@Abhishek: «предположительно» в каком смысле? Как я уже сказал, похоже, что JLS использует его для обозначения членов, которые могут быть разрешены по имени для этого подкласса. (Вы можете разрешить член, который недоступен, но определите это позже, например.) Я предлагаю вам перейти по ссылке на дублированный вопрос для получения более подробной информации. –

Смежные вопросы