В обоих случаях значение будет назначено только после , который выполнил конструктор суперкласса.
Для первого варианта необходимо иметь возможность определить значение без ссылки на какой-либопараметры конструктора.
Для второго варианта вам нужно будет присвоить значение в каждой перегрузке конструктора.
В основном я предпочитаю второй вариант, когда значениезависит от параметров конструктора (обычно это все, от чего я бы хотел зависеть) и от первого варианта, когда значение будет одинаковым для любого вновь инициализированного экземпляра.Я склонен не смешивать и сопоставлять для одного поля, используя инициализатор с объявлением и также , назначая его в некоторых перегрузках конструктора, но даже это может быть полезно иногда.(Представьте себе коллекцию, которая имеет размер 0 для большинства конструкторов, но имеет один конструктор, который принимает начальный набор значений.)
Пока вы можете ссылаться на другие члены экземпляра в объявлениях переменныхЯ предпочитаю не делать этого - вызов методов экземпляра, когда ваш объект только частично инициализирован, является хрупким, а обращение к другим переменным зависит от порядка переменных, что мне неприятно.