![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Есть вот такой вот код:
Почему вызов getString() в кострукотре A() возвращает null? Объясните пожалуйста, getString() в этом конструкторе вызывается из класса А или из B? |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
getString() будет вызван из В, сработает полиморфизм.
Что касается NPE, то вот в чем дело: при вызове new B() сначала неявно вызывается конструктор суперкласса (с предварительной инициализацией поля string класса А), обращающийся к методу getString(). Этот метод возвращает значение переменной из фактического объекта, то есть из В. А она к тому времени еще не инициализирована, так как конструктор суперкласса еще не завершил выполнение. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Спасибо, все понятно.
|
|||
|
||||
![]()
|
| Правила форума "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. |