抽象父类Car,包含四个属性(price价格,burden载货量,busload载客量,name车名),一个描述车的属性的抽象方法。
其中,货车类(Truck类,载货量),客车类(Coach类,载客量),皮卡类(Pickup类,载货载人)三个类继承抽象父类Car。
抽象父类代码:
package com.car;
public abstract class Car {
private int price;//车的价格
private int burden;//载货量
private int busload;//载客量
private String name;//车名
//定义一个描述车的属性抽象方法
public abstract void CarAttribute();
public void setPrice(int Price){
this.price = Price;
}
public int getPrice(){
return price;
}
public int getBurden() {
return burden;
}
public void setBurden(int burden) {
this.burden = burden;
}
public int getBusload() {
return busload;
}
public void setBusload(int busload) {
this.busload = busload;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
皮卡车类:
package com.car;
/*
* 皮卡车*/
public class Pickup extends Car{
public Pickup(String name, int price, int burden, int busload){
this.setName(name);
this.setPrice(price);
this.setBurden(burden);
this.setBusload(busload);
}
@Override
public void CarAttribute() {
// TODO 自动生成的方法存根
System.out.println(getName() + "\t" + getPrice()+ "元/天" + "\t载货量:" +
getBurden() + "吨,载人量:" + getBusload() + "人");
}
}
货车类:
package com.car;
/*
* 货车*/
public class Truck extends Car{
public Truck(String name,int price, int burden){
this.setName(name);
this.setPrice(price);
this.setBurden(burden);
}
@Override
public void CarAttribute() {
// TODO 自动生成的方法存根
System.out.println(getName() + "\t" + getPrice() + "元/天" + "\t载货量:" +
getBurden() + "吨");
}
}
客车类:
package com.car;
/*
* 客车*/
public class Coach extends Car{
public Coach(String name, int price, int busload){
this.setName(name);
this.setPrice(price);
this.setBusload(busload);
}
@Override
public void CarAttribute() {
// TODO 自动生成的方法存根
System.out.println(getName() + "\t" + getPrice()+ "元/天" + "\t载人量:"
+ getBusload() + "人");
}
}
主程序入口:
package com.car;
import java.util.Scanner;
public class Main {
//车的属性集合
static Car[] car = {new Coach("奥迪A4", 500, 4),
new Coach("马自达6", 400, 4),
new Pickup("皮卡雪6", 450, 2, 4),
new Coach("金龙", 800, 20),
new Truck("松花江", 400, 4),
new Truck("依维柯", 1000, 20)};
public static void main(String[] args) {
// TODO 自动生成的方法存根
int no = 0;//进入系统选择序号
int num =0;//租车数量
for(;;){
System.out.println("欢迎使用答答租车系统\n您是否要租车:1是 0否");
Scanner input = new Scanner(System.in);
try{
no = input.nextInt();
}catch(Exception e){
System.out.println("输入错误,请重新输入");
continue;
}
if(no == 1 no == 0){
switch(no){
case 0:
System.out.println("欢迎下次使用");
input.close();
break;
case 1:
//汽车价目表
System.out.println("您可租车的类型及其价目表:\n"
+ "序号" + "\t汽车名称" + "\t租金" + "\t容量");
for(int i = 0; i < car.length; i++){
System.out.print((i + 1) + "\t");
car[i].CarAttribute();
}
//所租汽车
System.out.println("请输入要租汽车数量:");
num = input.nextInt();
Car[] car1 = new Car[num];//租车
int[] days = new int[num];//租车天数
int NumPrice = 0;//租车总价
try{
for(int i = 0; i < num; i++){
System.out.println("请输入第" + (i+1) + "辆车的序号:");
int CarOrderNum = input.nextInt();
car1[i] = car[CarOrderNum - 1];
System.out.print(car1[i].getName());
System.out.println(",租车天数:");
days[i] = input.nextInt();
}
}catch(Exception e){
System.out.println("操作异常,退出系统");
input.close();
break;
}
//账单
System.out.println("-------------------------------------------");
System.out.println("账单:");
System.out.println("汽车名称" + "\t价格" + "\t所租天数" + "\t总价");
for(int i = 0; i < car1.length; i++){
System.out.println(car1[i].getName() + "\t" + car1[i].getPrice() +
"\t" + days[i] + "\t" + car1[i].getPrice() * days[i]);
NumPrice = NumPrice + (car1[i].getPrice() * days[i]);
}
System.out.println("-------------------------------------------");
System.out.println("共花费金额:" + NumPrice);
input.close();
break;
}
}
break;
}
}
}
运行结果:
欢迎使用答答租车系统
您是否要租车:1是 0否
1
您可租车的类型及其价目表:
序号 汽车名称 租金 容量
1 奥迪A4 500元/天 载人量:4人
2 马自达6 400元/天 载人量:4人
3 皮卡雪6 450元/天 载货量:2吨,载人量:4人
4 金龙 800元/天 载人量:20人
5 松花江 400元/天 载货量:4吨
6 依维柯 1000元/天 载货量:20吨
请输入要租汽车数量:
2
请输入第1辆车的序号:
1
奥迪A4,租车天数:
5
请输入第2辆车的序号:
5
松花江,租车天数:
2
-------------------------------------------
账单:
汽车名称 价格 所租天数 总价
奥迪A4 500 5 2500
松花江 400 2 800
-------------------------------------------
共花费金额:3300