我应该制作一个具有MotorVehicle
抽象类的程序。Car
, Truck
,Van
是种MotorVehicle
。setTerms()
和displayInfo()
是唯一的抽象。Car
有String transType
and void Car()
, Van
has int numPassenger
and void Van(
), as Truck
has double payLoad
and void Truck()
.
输出应该是这样的:
品牌是马自达
车辆类型是轿车
颜色是红色
传输类型为自动
价格为 840000.0
条款是5年支付
品牌是五十铃
车辆类型是卡车
颜色是白色
有效载荷容量为 3.5
价格为 910000.0
条款是3年支付
品牌是三菱
车辆类型是家庭面包车
颜色是蓝色
乘客人数为 8
价格为 1050000.0
条款是 7 年支付
但是我的程序仍然没有产生这个输出
这是我当前的代码:
public abstract class MotorVehicle
{
private String vehicleType;
private String brand;
private String color;
private String terms;
public MotorVehicle(String vcl, String brn, String clr, String trm)
{
vehicleType = vcl;
brand = brn;
color = clr;
terms = trm;
}
public String getVehicleType()
{
return vehicleType;
}
public String getBrand()
{
return brand;
}
public String getColor()
{
return color;
}
public abstract void setTerms();
public abstract void displayInfo();
}
//=========================================
public class Car extends MotorVehicle
{
String transType="";
String vehicleType;
String brand;
String color;
String terms;
int price = 0;
public Car(String vcl, String brn, String clr, String trm)
{
super(vcl, brn, clr, trm);
vehicleType = vcl;
brand = brn;
color = clr;
terms = trm;
}
public void Car()
{
brand = "Mazda";
vehicleType = "Sedan";
color = "Red";
transType = "Automatic";
price = (int) (700000 + (700000*0.2));
Double.toString(price);
terms = "5";
}
public void setTerms()
{
return;
}
public void displayInfo()
{
System.out.println("Brand is " + brand);
System.out.println("Vehicle type is " + vehicleType);
System.out.println("Color is " + color);
System.out.println("Transmission type is " + transType);
System.out.println("Price is " + price);
System.out.println("Terms is " + terms + " years to pay");
}
}
//=================================
public class Truck extends MotorVehicle
{
double payLoad=0.0;
String vehicleType;
String brand;
String color;
String terms;
int price = 0;
public Car(String vcl, String brn, String clr, String trm)
{
super(vcl, brn, clr, trm);
vehicleType = vcl;
brand = brn;
color = clr;
terms = trm;
}
public void Truck()
{
brand = "Isuzu";
vehicleType = "Truck";
color = "White";
payLoad = 3.5;
Double.toString(payLoad);
price = (int) (700000 + (700000*0.3));
Double.toString(price);
terms = "3";
}
public void setTerms()
{
return;
}
public void displayInfo()
{
System.out.println("Brand is " + brand);
System.out.println("Vehicle type is " + vehicleType);
System.out.println("Color is " + color);
System.out.println("Payload capacity is " + payLoad);
System.out.println("Price is " + price);
System.out.println("Terms is " + terms + " years to pay");
}
}
//==========================
public class Van extends MotorVehicle
{
int numPassenger=0;
String vehicleType;
String brand;
String color;
String terms;
int price=0;
public Van(String vcl, String brn, String clr, String trm)
{
super(vcl, brn, clr, trm);
vehicleType = vcl;
brand = brn;
color = clr;
terms = trm;
}
public void Van()
{
brand = "Mitsubishi";
vehicleType = "Family Van";
color = "Blue";
numPassenger = 8;
String.valueOf(numPassenger);
price = (int) (700000 + (700000*0.5));
Double.toString(price);
terms = "7";
}
public void setTerms()
{
return;
}
public void displayInfo()
{
System.out.println("Brand is " + brand);
System.out.println("Vehicle type is " + vehicleType);
System.out.println("Color is " + color);
System.out.println("Number of passenger is " + numPassenger);
System.out.println("Price is " + price);
System.out.println("Terms is " + terms + " years to pay");
}
}
//===================
这是主程序:
public class MainVehicle
{
public static void main(String[] args)
{
BBVehicle[] vhl= new BBVehicle[3];
int ctr=0;
while(ctr<3)
{
if (ctr==0)
vhl[ctr]=new Car();
else if(ctr==1)
vhl[ctr]= new Truck();
else
vhl[ctr]= new Van();
vhl[ctr].displayInfo();
ctr++;
}
}
}
我不确定我的程序有什么问题。请帮帮我谢谢