小可爱z
2018-11-07 17:19
package package3;
import java.util.Scanner;
//抽象类
abstract class car{
//public static int length;
protected String carName;//车名
protected int personNumber;//载客量
protected double goods;//载物量
protected int money;//租金
//客车构造方法,客车载客
public car(String carName,int personNumber,int money){
super();
this.carName=carName;
this.personNumber=personNumber;
this.money=money;
}
//货车构造方法,货车载人
public car(String carName,double goods,int money){
super();
this.carName=carName;
this.goods=goods;
this.money=money;
}
//皮卡构造方法,皮卡即载客又载人
public car(String carName,int personNumber,double goods,int money){
super();
this.carName=carName;
this.personNumber=personNumber;
this.goods=goods;
this.money=money;
}
abstract void show();//抽象类中必须有抽象方法,且方法中不能含有方法体
}
//客车类
class passengerCar extends car{
public passengerCar(String carName,int personNumber, int money) {
super(carName, personNumber, money);
}
public void show(){
System.out.println(carName+" "+money+"元/天 载人:"+personNumber+"人");
}
}
//货车类
class lorry extends car{
public lorry(String carName, double goods, int money) {
super(carName, goods, money);
}
public void show(){
System.out.println(carName+" "+money+"元/天 载货:"+goods+"吨");
}
}
//皮卡类
class pika extends car{
public pika(String carName,int personNumber,double goods,int money) {
super(carName,personNumber,goods,money);
}
public void show(){
System.out.println(carName+" "+money+"元/天 载货:"+goods+"吨 载人"+personNumber );
}
}
public class Cartest {
public static void main(String[] args) {
car[] cars={new lorry ("松花江",4.0, 400),
new lorry ("依维柯",20.0,1000),
new pika ("皮卡雪", 2, 2, 450),
new passengerCar("马自达", 4, 400),
new passengerCar("奥迪A4", 4, 500)};
System.out.println("欢迎使用哒哒租车系统:");
System.out.println("你是否要租车:1-是 0-否");
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
if(i==1){
System.out.println("你可租车的类型及其价目录:");
System.out.println("********************************");
for(int a=0;a<cars.length;a++){
System.out.print((a+1) +" " );
cars[a].show();
}
System.out.println("请输入你要租的汽车数量:");
int number=sc.nextInt();
int Money=0;
for(int j=0;j<number;j++){
System.out.printf("请输入第%d辆车的序号:",j+1);
int a=sc.nextInt();
System.out.println("你选中的第"+(j+1)+"车为:——————"+cars[a-1].carName+" 这辆车每天的租金为:"+cars[a-1].money);
Money=Money+cars[a-1].money;
}
System.out.println("请输入租车天数:");
int days=sc.nextInt();
System.out.println("***********租车完成***********");
System.out.println("下面开始统计账单:");
System.out.println("您一共租了"+number+"辆车,一共花费"+(Money*number)+"元");
}
else{
System.out.println("谢谢!欢迎下次再来");
System.exit(0);
}
}
}
参考大佬代码,在下还是没能独立设计出程序
用不用抽象类影响不大,反正后面学了接口之后就很少用到这个了
我也是初学者,不过我并没有建立一个车的数组,而是使用switch函数来获取信息,觉得你的代码更简洁一些。
Java入门第二季 升级版
530559 学习 · 6091 问题
相似问题