![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| kornata |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 25.2.2010 Репутация: нет Всего: нет |
Скажите, может ли экземпляр наследника выполнить какую-то инициализацию в инициализации экземпляра до того, как начнёт исполняться конструктор родителя? в инициализации полей? статических полей?
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Если в классе есть static-блок (static { ... } ), то он, насколько я понимаю, будет исполнен в момент загрузки класса, то есть ДО создания экземпляра. Ну а конструкторы будут вызываться сначала родительские, а уж потом свой (либо только свой, без родительских - если он переопределен).
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 5 Всего: 9 |
Нет. Конструктор потомка всегда сначала вызывает конструктор родителя, явно или неявно.
P. S. Возможно, вам стоит почитать сановский туториал по основам языка Java? Ответы на большинство ваших вопросов в нем легко найти. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Угу, точно. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 5 Всего: 9 |
Уточню - неявно вызывается только конструктор по умолчанию, другие конструкторы суперкласса надо вызывать явно.
|
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Этот принцип в некоторых случаях удается чуть-чуть обойти, задав интересующие операции в скобках, при вызове конструктора родительского класса. Например:
Вызывается при этом конструктор родительского класса с целым и булевым параметрами. Понятное дело, что методы, принадлежащие создаваемому объекту в таком варианте использовать нельзя. Есть и другие ограничения (всего не припомню). Но мне удавалось загнать в эти скобки довольно много. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| kornata |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 25.2.2010 Репутация: нет Всего: нет |
Спасибо!
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |