求大神:载人车车辆和载货车辆怎么分开输出,我结合别人的只能一块输出

来源:12-1 综合练习

天涯CCY

2018-03-09 09:49

package com.imooc;


public class Car {

    String name;//定义一个名字

    int price;//定义租金

    int number;//载人数

    int weight;//载货数

}


package com.imooc;


public class Manned extends Car {

        Manned(String name,int price,int number){

    this.name=name;

    this.price=price;

    this.number=number;

    }

}


package com.imooc;


public class Cargo extends Car {

Cargo(String name,int price,int weight){

    this.name=name;

    this.price=price;

    this.weight=weight;

}

}


package com.imooc;


public class Pickup extends Car {

Pickup(String name,int price,int number,int weight){

    this.name=name;

    this.price=price;

    this.number=number;

    this.weight=weight;

}

}


package com.imooc;


import java.util.Scanner;


public class Test {

 Car[] rent=new Car[100];//定义一个大数组

Car cars[]={new Manned("江淮客车",300,40),new Cargo("陕汽奥龙",600,50),new Manned("奔驰",700,5),new Cargo("一汽",500,5),new Pickup("皮卡",200,4,1)};

int count;//数量

    int day;//天数

    int money;//价格

public static void main(String[] args) {

// TODO Auto-generated method stub

   Test hello=new Test();

 Scanner input =new Scanner(System.in);

 System.out.println("欢迎您使用答答租车系统:");

 System.out.println("您是否要租车:1是2否");

 int inputNumber=input.nextInt();

 if(inputNumber==1){

 System.out.println("您可租车的类型及其价目表:");

 System.out.println("序号  汽车名称    租金                容量:");

 System.out.println("1. 江淮客车     300/天       载人:40人"  );

 System.out.println("2. 陕汽奥龙     600/天      载货:50吨");

 System.out.println("3. 奔驰              700/天      载人:5人");

 System.out.println("4. 一汽              500/天      载货5吨");

 System.out.println("5. 皮卡              200/天      载人:4人,载货:1吨");

 }

 if(inputNumber==2){

 input.close();

 System.exit(-1);

 }

 System.out.println("请输入您要租车的数量");

 int carNumber=input.nextInt();

 for(int i=0;i<carNumber;i++){

 System.out.println("请输入第"+(i+1)+"辆车的序号");

 int a=input.nextInt();

 while (a < 1 || a > 6) {

                 System.out.println("您输入的型号有误,请重新输入选择车型"); 

                 int b = input.nextInt();

a=b;

 }

    hello.money += hello.cars[a-1].price;

    hello.rent[i]= hello.cars[a-1];

 }

        System.out.println("请输入租车天数");

        int day=input.nextInt();

        hello.money*=day;

        System.out.println("您的租车账单为:");

int mannedNumber=0;

int cargoNumber=0;

        for(int i=0;i<carNumber;i++){

        System.out.print(hello.rent[i].name + " ");

        mannedNumber+=hello.rent[i].number;

        cargoNumber+=hello.rent[i].weight;

        }

        System.out.println("您的租车载人数量" + mannedNumber + "人");

        System.out.println("您的租车载货量" + cargoNumber + "吨");

        System.out.println("您的租车总费用:" + hello.money);


}

}


写回答 关注

1回答

  • qq_卡萨布兰卡的脆皮甜筒_0
    2018-03-10 09:11:27

    可以引入接口概念。java父类只能单继承,但接口可以多个继承。可以考虑在你的代码Car类中仅仅只加入name和price两个变量,创建载人Human和载物Cargo的两个接口,载人客车继承Car同时继承Human接口,货车继承Car的同时,继承Cargo接口,皮卡车继承Car并同时继承Human和Cargo两个接口,这样可以实现你所说的分别输出。


    慕粉4006...

    然而接口中只能有共享常量,关于载人量和载物量这两个属性又该定义在哪里??

    2018-03-18 14:20:01

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530652 学习 · 6091 问题

查看课程

相似问题