Допустим, у меня есть объект класса Car с примерно 30 переменными в диапазоне от максимальной скорости до цвета.Я хочу сделать объект MyCar (класс MyCar extends Car), который в основном является тем же самым, за исключением того, что он хранит некоторую дополнительную информацию.
Я не могу сразу создавать объекты MyCar (так как из тысячТолько несколько объектов из автомобилей станут объектами MyCar), если я не оставлю дополнительные поля пустыми, но это не кажется слишком профессиональным.И при этом не создается ни конструктор, который принимает 30 аргументов, ни установка 30 аргументов через вызовы методов.
Итак, есть ли способ легко наследовать все переменные из объекта суперкласса?
PS:Моя программа не об автомобилях, но я подумал, что это будет более простой пример.
РЕДАКТИРОВАТЬ
Спасибо за ответы.Все они полезны для моей программы, но не для этой конкретной проблемы.Строители не кажутся выгодными, потому что эти машины не имеют значений по умолчанию для своих переменных.Каждый раз, когда производится автомобиль, все переменные заполняются (что необходимо для создания своего рода «фактологического бюллетеня»).
Конверты - это интересный дизайн, но все же требуется, чтобы я скопировал все переменныев конструкторе подкласса.Я надеялся, что найдется способ обойти это.Шаблоны также требуют, чтобы я копировал все переменные одну за другой.
В моей программе подкласс действует как своего рода «класс-обертка» в поисковой системе.Подклассы такие же, как и у обычных автомобилей, но у них есть «рейтинговый балл».Моя программа предназначена для отображения обычных автомобилей, и, расширяя их, я могу легко отображать подклассы и упорядочивать их по количеству баллов одновременно.
В любом случае мне нужно создавать новые объекты, потому что несколько запросов могут быть выполнены натот же список автомобилей.Поэтому редактирование переменных в оригинальных автомобилях не было возможным.
Возможно, есть лучшее решение этой проблемы, но сейчас я думаю, мне придется передать объект суперкласса в конструктор и скопировать все переменныетам.
Спасибо за помощь!
PS: Я просто думаю, возможно, я мог бы бросить все переменные в HashMap.Таким образом, я мог получить к ним доступ, используя .get (varname), и мне нужно было только передать одну переменную HashMap в подкласс.Недостатком является то, что мне придется много разыгрывать, поскольку переменные представляют собой смесь строк, целых, двойных чисел и т. Д. Как вы думаете, это приемлемый стиль кодирования?