Есть ли способ генерации объектов разных типов из одного метода без использования длинных и сложных if-операторов?Создание разных объектов по одному методу
Допустим, я создал абстрактный класс под названием Vehicle. Автомобиль имеет конструктор, как это:
public abstract class Vehicle {
int mileage;
public Vehicle (int mileage) {
this.mileage = mileage;
}
}
Теперь, я создал много и много различных типов транспортных средств, которые все наследуется автомобиля, такие как багги, SmallCar, MediumCar, BigCar, FastCar, OldCar, NewCar, PickUpTruck , SmallTruck, MediumTruck, LargeTruck, Велосипед, Трамвай, Поезд и т. Д. И так далее. Насколько я понимаю, они теперь все Транспортные средства, поскольку они наследуют Автомобиль.
Можно ли каким-либо образом получить тип автомобиля у пользователя вместе с пробегом и создать правильный тип транспортного средства, передав его одному методу независимо от того, какой тип транспортного средства выбрал пользователь? Что-то вроде этого:
public void createNewVehicle (Variable someKindOfWayToPickVehicleType, int mileage) {
// Create a new vehicle where exact class is decided by someKindOfWayToPickVehicleType variable
}
См. Http://stackoverflow.com/questions/9174359/create-different-objects-depending-on-type – jarmod
Используйте «перечисление», если у вас есть фиксированное количество транспортных средств. Каждый элемент в 'enum' может иметь собственный метод« create », который вернул правильный тип транспортного средства – MadProgrammer
http://stackoverflow.com/a/29853592/180100 является опцией –