java定义接口区分飞机和汽车,Java接口的定义解决方法

Java codeinterface Transport { //定义接口

int TRUCH = 0;

int TRAIN = 1;

int AIRPLANE = 2;

double cacl(double weight, double distance);

}

class Truck implements Transport { //实现接口

public double cacl(double weight, double distance) {

if (weight > 60 || distance > 1000) return -1;

return weight * distance * 120;

}

}

class Train implements Transport {

public double cacl(double weight, double distance) {

if (distance > 900) return weight * distance * 300;

return weight * distance * 250;

}

}

class Airplane implements Transport {

public double cacl(double weight, double distance) {

if (distance < 500) return -1;

return weight * distance * 750;

}

}

public class Test { //使用接口

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while (true) {

System.out.println("please slelect transport[1:truck/2:train/3:airplane] or input [quit] to exit.");

String method = sc.nextLine();

if ("exit".equals(method)) {break;}

if (!method.matches("[1-3]")) {

System.out.println("error input, try again.");

continue();

}

System.out.println("please input weight");

String weight = sc.nextLine();

if (!weight.matches("\\d+([.]\\d+)?")) {

System.out.println("error input, try again.");

continue();

}

System.out.println("please input distance");

String distance = sc.nextLine();

if (!weight.matches("\\d+([.]\\d+)?")) {

System.out.println("error input, try again.");

continue();

}

Transport tp = getTransport(Integer.valueOf(method));

double money = tp.cacl(Double.valueOf(weight), double.valueOf(distance));

System.out.println("money=%.2f", money);

}

}

public static Transport getTransport(int transport) {

if (transport == Transport.TRUCK) {return new Truck();}

else if (transport == Transport.TRAIN) {return new Train();}

else {return new Airplane();}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值