java难题,请求各位高手帮助我解答一下,大家有难题互帮互助?

一个运输公司从网上得到订单,订单上标有货物重量和运输里程,该公司可以使用3种运输工具:卡车、火车、飞机。根据以下要求设计接口,并定义接口的实现类,在测试类中验证多态性,具... 一个运输公司从网上得到订单,订单上标有货物重量和运输里程,该公司可以使用3种运输工具:卡车、火车、飞机。根据以下要求设计接口,并定义接口的实现类,在测试类中验证多态性,具体要求如下:

(1)编写运输接口Traffic,声明一个计算运费的方法,参数是重量和里程;                      

(2)卡车、火车、飞机分别实现运输接口,计算运费的方法如下:

a. 卡车Truck:运费=重量*距离*120,当距离大于1000km或重量大于60t时候拒载,提示“超重或者距离太远不能接单”;

b. 火车:当距离在900km内时,运费=重量*距离*250,大于900km,运费=重量*距离*300.

c. 飞机:当距离大于500km时,运费=重量*距离*750,否则拒载,输出信息。

(3)定义一个ZuChe类,定义2个属性,分别描述重量和里程;定义一个方法useTraffic(Traffic t,double zhong,double licheng),在该方法中调用计算运费的方法;

(4)编写测试类,在测试类中创建三个实现类对象,从控制台输入重量和里程,创建一个ZuChe对象,分别用三个实现类对象作参数,调用userTraffic方法。
展开
 我来答
大反派小花6Q
2020-03-31 · TA获得超过139个赞
知道小有建树答主
回答量:208
采纳率:75%
帮助的人:40.2万
展开全部
import java.util.Scanner;

interface Traffic{
double calc(double weight,double distance);//计算运费
}

class Trunk implements Traffic{
@Override
public double calc(double weight,double distance) {
return (distance<=1000&&weight<=60)?(weight*distance*120):(-1);
}
}

class Train implements Traffic{
@Override
public double calc(double weight, double distance) {
return (distance<=900)?(weight*distance*250):(distance*weight*300);
}
}

class Plane implements Traffic{
@Override
public double calc(double weight, double distance) {
return (distance>500)?(weight*distance*750):(-1);
}
}

class ZuChe{
private double distance;//距离
private double weight;//重量
public String useTraffic(Traffic t){
double result = t.calc(weight, distance);
return (result!=-1)?(""+result):(t.getClass().getName().equals(Trunk.class.getName())?"超重或者距离太远不能接单":"拒载");
}
public ZuChe setDistance(double distance) {
this.distance = distance;
return this;
}
public ZuChe setWeight(double weight) {
this.weight = weight;
return this;
}
}

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double weight = sc.nextDouble();
double distance = sc.nextDouble();
ZuChe zuche = new ZuChe().setDistance(distance).setWeight(weight);
System.out.println("卡车的运费是:"+zuche.useTraffic(new Trunk()));
System.out.println("火车的运费是:"+zuche.useTraffic(new Train()));
System.out.println("飞机的运费是:"+zuche.useTraffic(new Plane()));
}
}
知闻书屋
2020-03-31 · 让获取知识变得更加容易!!!
知闻书屋
采纳数:47 获赞数:156

向TA提问 私信TA
展开全部
你的算法描述已经很清楚了,难道实现起来很困难吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式