//定义一个父类
public class Car {
String name;//车名
double rent;//租金
public String getName(){
return name;
}
public void setName(String carName){
this.name=carName;
}
public double getRent(){
return rent;
}
public void setRent(String carRent){
this.name=carRent;
}
}
//定义客车并继承Car
public class PassengerCar extends Car {
private int peopleCapacity;//载客量
public PassengerCar(String name,double rent,int peopleCapacity){//构造方法可以在实例化对象时候直接这个对象进行赋值
this.name=name;
this.rent=rent;
this.peopleCapacity=peopleCapacity;
}
public int getPeopleCapacity(){
return peopleCapacity;
}
public void setPeopleCapacity(int peoplecapacity){
this.peopleCapacity=peoplecapacity;
}
}
//定义货车并继承Car
public class Truck extends Car {
private int cargoCapacity;//载货量
public int getCargoCapacity(){
return cargoCapacity;
}
public void setCargoCapacity(int cargocapacity){
this.cargoCapacity=cargocapacity;
}
public Truck(String name,double rent,int cargoCapacity){//构造方法可以在实例化对象时候九尾这个对象进行赋值
this.name=name;//this.name是访问成员变量
this.rent=rent;
this.cargoCapacity=cargoCapacity;
}
}
//定义一个测试类
import java.util.Scanner;
public class Test {
public static void main(String[] args){//定义一个类数组
Car[] car={new PassengerCar("奥迪",500,4),new PassengerCar("马自达",400,4),new Truck("金龙",800,20),new Truck("松花江",400,4),new Truck("依维柯",1000,20)};
System.out.println("欢迎使用答答租车系统");
System.out.println("你是否要租车:1是 2否");
int peopleCapacity=0;
int cargoCapacity=0;
int totalRent=0;//总的租金
Scanner scan=new Scanner(System.in);
int input=scan.nextInt();//这两句是读取输入值
if(input==1){
System.out.println("你可租车的类型及其价格表:");
System.out.print("序号 汽车名称 租金 容量
");
int i=1;
for(Car Cars:car){
if(Cars instanceof PassengerCar){
System.out.println(" "+i+" "+Cars.getName()+" "+Cars.getRent()+"元/天 "+((PassengerCar)Cars).getPeopleCapacity()+"人 ");
}else{
System.out.println(" "+i+" "+Cars.getName()+" "+Cars.getRent()+"元/天 "+((Truck)Cars).getCargoCapacity()+"吨 ");
}
++i;
}
System.out.println("请输入你要租车的数量:");
int count=scan.nextInt();
for(int j=0;j<count;j++){
System.out.println("请输入您要选择的第"+(j+1)+"辆车的序号");
int chooseNum=scan.nextInt();
System.out.println("你选择的是第"+chooseNum+"号车型");
if(car[chooseNum-1] instanceof PassengerCar){
System.out.println(car[chooseNum-1].getName()+" "+car[chooseNum-1].getRent()+"元/天 "+((PassengerCar)car[chooseNum-1]).getPeopleCapacity()+"人 ");
peopleCapacity+=((PassengerCar)car[chooseNum-1]).getPeopleCapacity();
}else{
System.out.println(car[chooseNum-1].getName()+" "+car[chooseNum-1].getRent()+"元/天 "+((Truck)car[chooseNum-1]).getCargoCapacity()+"人 ");
cargoCapacity+=((Truck)car[chooseNum-1]).getCargoCapacity();
}
totalRent+=car[chooseNum-1].getRent();
}
System.out.println("请输入你租车的天数");
int days=scan.nextInt();
System.out.println("你租赁了"+count+"辆车");
System.out.println("总载客量为"+peopleCapacity+"人");
System.out.println("总载货量为"+cargoCapacity+"吨");
System.out.println("总租金为"+totalRent*days+"元");
}else{
System.out.println("再见");
}
}
}
结果:
欢迎使用答答租车系统
你是否要租车:1是 2否
1
你可租车的类型及其价格表:
序号 汽车名称 租金 容量
1 奥迪 500.0元/天 4人
2 马自达 400.0元/天 4人
3 金龙 800.0元/天 20吨
4 松花江 400.0元/天 4吨
5 依维柯 1000.0元/天 20吨
请输入你要租车的数量:
3
请输入您要选择的第1辆车的序号
1
你选择的是第1号车型
奥迪 500.0元/天 4人
请输入您要选择的第2辆车的序号
2
你选择的是第2号车型
马自达 400.0元/天 4人
请输入您要选择的第3辆车的序号
3
你选择的是第3号车型
金龙 800.0元/天 20人
请输入你租车的天数
3
你租赁了3辆车
总载客量为8人
总载货量为20吨
总租金为5100元