Использование окончательного списка с наследованием в Java - PullRequest
0 голосов
/ 10 ноября 2019

Я новичок в Java, и я думал об определенной ситуации, в которой у нас есть один суперкласс и два подкласса. Мне нужно хранить один статический окончательный ArrayList of Strings в каждом подклассе, но из-за того, что они представляют собой 2 ArrayList of Strings, я думал о перемещении их в суперкласс (очевидно, создавая один единственный ArrayList), чтобы избежать дублирования и позволить подклассамприсвойте их постоянные значения в конструкторе. Могу ли я сделать что-то подобное? У меня возникли некоторые трудности, потому что первая инструкция конструктора подкласса должна быть конструктором суперкласса, поэтому я не могу объявить локальный ArrayList в конструкторе и затем передать его конструктору суперкласса (поэтому я обязан сохранить этот ArrayList в подклассе, и я 'м в основном в начальной точке). Что я могу сделать, чтобы понять это?

1 Ответ

1 голос
/ 10 ноября 2019

Нет, вы не можете сделать что-то подобное. В тот момент, когда вы начинаете говорить о static, любое обсуждение подклассов и суперклассов выходит из окна. Либо полностью отбросьте понятие static, либо оставьте всякую надежду на то, что ваши подклассы и суперклассы поделятся им. (Подсказка: отбрасывание static - это путь.)

Редактирование после уточнения с помощью OP: вам нужно объявить абстрактный метод getCities() в вашем суперклассе, а затем реализовать этот метод в каждомподкласс. Из этого метода каждый подкласс будет возвращать свой собственный статический список городов.

...