使用抽象类和接口实现的租车系统java代码;
定义接口类:
public interface CarRentalSystemInterface {
void displayMenu();
void handleChoice(int choice);
}
定义抽象类:
import java.util.Scanner;
public abstract class CarRentalSystem implements CarRentalSystemInterface {
public void run() {
Scanner scanner = new Scanner(System.in);
while (true) {
displayMenu();
int choice = scanner.nextInt();
handleChoice(choice);
}
}
}
租车系统功能菜单:
import java.util.Scanner;
public class ConcreteCarRentalSystem extends CarRentalSystem {
@Override
public void displayMenu() {
System.out.println("请选择操作:");
System.out.println("1. 查询车型");
System.out.println("2. 查询租车手续");
System.out.println("3. 查询价格");
System.out.println("4. 管理出租汽车");
System.out.println("5. 计算租金并生成租车合同");
System.out.println("6. 退出");
}
@Override
public void handleChoice(int choice) {
switch (choice) {
case 1:
System.out.println("我们提供以下车型:");
System.out.println("1. 轿车");
System.out.println("2. SUV");
System.out.println("3. MPV");
break;
case 2:
System.out.println("租车手续包括:");
System.out.println("1. 身份证明");
System.out.println("2. 驾驶证");
System.out.println("3. 信用卡");
break;
case 3:
System.out.println("不同车型的价格如下:");
System.out.println("轿车:每天100元");
System.out.println("SUV:每天200元");
System.out.println("MPV:每天300元");
break;
case 4:
System.out.println("请输入要管理的车辆信息:");
// 这里可以添加具体的车辆管理逻辑,例如增加、删除、修改车辆信息等
break;
case 5:
System.out.println("请输入租车天数和车型:");
int days = new Scanner(System.in).nextInt();
int carType = new Scanner(System.in).nextInt();
double price = 0;
switch (carType) {
case 1:
price = 100 * days;
break;
case 2:
price = 200 * days;
break;
case 3:
price = 300 * days;
break;
default:
System.out.println("无效的车型");
break;
}
System.out.println("总租金:" + price + "元");
System.out.println("生成租车合同...");
// 这里可以添加生成租车合同的逻辑,例如将租车信息写入文件等
break;
case 6:
System.out.println("感谢使用,再见!");
System.exit(0);
default:
System.out.println("无效的操作,请重新选择");
}
}
}
测试代码:
import CarRentalSystemInterface;
import CarRentalSystem;
import ConcreteCarRentalSystem;
public class Main {
public static void main(String[] args) {
CarRentalSystemInterface carRentalSystem = new ConcreteCarRentalSystem();
carRentalSystem.run();
}
}