0
有没有什么方法可以从一种方法生成不同类型的对象,而不需要使用冗长而复杂的if语句?从一种方法创建不同的对象
可以说我创建了一个叫做Vehicle的抽象类。车辆具有这样的构造:
public abstract class Vehicle {
int mileage;
public Vehicle (int mileage) {
this.mileage = mileage;
}
}
现在,我已经创建了很多很多不同类型的车辆,所有车辆的继承,如沙滩车,SmallCar,MediumCar,BigCar,FastCar,OldCar,NewCar,皮卡,SmallTruck,MediumTruck,LargeTruck,Bicycle,Tram,Train等等。据我了解,他们现在都是车辆,因为他们继承了车辆。
有没有什么办法可以从用户那里获得车辆类型和里程数,并且无论用户选择何种车辆类型,都可以通过将其传递给一种方法来创建正确类型的车辆?事情是这样的:
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'。 'enum'中的每个元素都可以拥有自己的“创建”方法,它返回正确的车辆类型 – MadProgrammer
http://stackoverflow.com/a/29853592/180100是一个选项 –