| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > NPE в конструкторе суперкласса |
| Автор: Temdegon 28.4.2010, 13:27 | ||
Есть вот такой вот код:
Почему вызов getString() в кострукотре A() возвращает null? Объясните пожалуйста, getString() в этом конструкторе вызывается из класса А или из B? |
| Автор: jk1 28.4.2010, 14:08 |
| getString() будет вызван из В, сработает полиморфизм. Что касается NPE, то вот в чем дело: при вызове new B() сначала неявно вызывается конструктор суперкласса (с предварительной инициализацией поля string класса А), обращающийся к методу getString(). Этот метод возвращает значение переменной из фактического объекта, то есть из В. А она к тому времени еще не инициализирована, так как конструктор суперкласса еще не завершил выполнение. |
| Автор: Temdegon 28.4.2010, 15:38 |
| Спасибо, все понятно. |