Это зависит от того, как часто вы ведете себя между carN
классами.В Java все автоматически расширяет Object, поэтому у вас всегда есть общий базовый класс, но Object, вероятно, не является особенно полезной общей базой.
Как правило, общее поведение, скажем, Car
и добавьте или переопределите поведение, зависящее от версии, в каждом из подклассов.
РЕДАКТИРОВАТЬ: В своем методе doStuff
вы должны тщательно продумать, действительно ли вам 1011 * необходимо проверить подкласс.Это будет трудно поддерживать, если вам требуется различное поведение для каждого подкласса, поэтому вам следует подумать, можете ли вы переместить некоторую логику в классы carN
или суперкласс Car
и удалить зависимость.Если вы можете написать свой doStuff
в терминах более общего Car
интерфейса / суперкласса, тогда ваш код будет чище, его будет легче понять и поддерживать.