为某研究所编写一个通用程序,用来计算每一种交通工具运行 1000公里所需的时间.已知每种交通工具的参数都是3个整数常量A、B、C的表达式。

现有两种工具:Car 和Plane,
其中Car 的速度运算公式为:A*B/C,
Plane 的速度运算公式为 :A+B+C。

要求在未来如果增加第3种交通工具(如Ship)的时候,可以做到复用已有代码。
Ship的速度运算公式为 :A+B/C。

这里复用已有代码的意思是,比如专门定义了一个方法,用来计算所有交通工具的,移动指定距离所用的时间 , 可以不改变这个方法,继续用它计算新增加的交通工具的运行时间

double calculateTime(int distance, 计算对象) {
return 计算结果
}

要求自己设计该系统,并测试。

package com.company;/*** @Author:gaoyuan* @Description:* @DateTime:2021/1/11 20:51**/
public class Test {public static void main(String[] args) {Vehicle car = new Car(5,6,7);System.out.println("Car运行 1000公里所需的时间为:"+car.calculateTime(1000));Plane plane = new Plane(5,6,7);System.out.println("Plane运行 1000公里所需的时间为:"+plane.calculateTime(1000));Ship ship = new Ship(5,6,7);System.out.println("Ship运行 1000公里所需的时间为:"+ship.calculateTime(1000));}}interface ComputationTime{double calculateTime(int distance);//计算某种交通工具,移动指定距离例所花的时间
}
/*** 该类抽象所有,类型交通工具的共性,3个参数a, b, c,* 同时,所有交通工具都需要计算所需的时间,该计算方法放在了ComputationTime接口中*/
abstract class Vehicle implements ComputationTime{private int A;private int B;private int C;public Vehicle(int a, int b, int c) {A = a;B = b;C = c;}
public abstract double getSpeed();@Overridepublic double calculateTime(int distance){return distance/getSpeed();}public int getA() {return A;}public int getB() {return B;}public int getC() {return C;}
}class Car extends Vehicle{public Car(int a, int b, int c) {super(a, b, c);}@Overridepublic  double getSpeed(){return getA()*getB()/getC();}
}class Plane extends Vehicle {public Plane(int a, int b, int c) {super(a, b, c);}@Overridepublic double getSpeed(){return getA()+getB()+getC();}
}
class Ship extends Vehicle {public Ship(int a, int b, int c) {super(a, b, c);}@Overridepublic double getSpeed(){return getA()+getB()/getC();}
}

关于抽象类,接口的题目相关推荐

  1. 抽象类+接口+内部类作业题及答案

    抽象类+接口+内部类作业题 一.选择题 Person类和Test类的代码如下所示,则代码中的错误语句是( ).(选择一项) public class Person { public String na ...

  2. 抽象类+接口+内部类作业题

    抽象类+接口+内部类作业题 一. 选择题 1. Person类和Test类的代码如下所示,则代码中的错误语句是(  c  ).(选择一项)   public class Person { public ...

  3. 小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。

    抽象类接口的理解 鲁迅的一句话:总之岁月漫长,然而值得等待. /* 抽象类中的面试题: 1.一个抽象类中可不可以没有抽象方法:可以,这样做的目的只有一个,就是不让其他类创建本类对象交给子类完成. 2. ...

  4. 继承 多态 抽象类 接口

    面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...

  5. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)

    JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...

  6. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  7. 185-186 抽象类+接口案例/运动员和教练

    185-186 抽象类+接口案例/运动员和教练 需求:有乒乓球运动员.篮球运动员.乒乓球教练.篮球教练.签了出过交流,乒乓球教练.乒乓球运动员需要学习英语.请用所学知识分析,这个案例中有哪些具体类.哪 ...

  8. JAVA抽象类接口初始化块实验_抽象类和接口 - 逝水无痕7777的个人空间 - OSCHINA - 中文开源技术交流社区...

    抽象类和接口 1.抽象类 抽象方法是只有方法签名,没有方法实现的方法.有抽象方法的类只能被定义成抽象类,抽象类可以没有抽象方法.抽象方法和抽象类必须使用abstract修饰符来定义. 抽象类不能被实例 ...

  9. day09 多态抽象类接口

    多态抽象类接口 1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6: ...

  10. java抽象类和接口实验题目

    编写程序,要求如下: (1)定义Biology(生物).Animal(动物)和Mankind(人)3个接口: (2)接口Biology声明breath()抽象方法: (3)接口Animal继承Biol ...

最新文章

  1. 吴思教授:揭秘视觉信息处理的闭环
  2. Android开发实践:如何设置NDK的编译选项
  3. [语义]情感分析方向近况·0908
  4. Oculus除创始人之外的第一位员工离职
  5. java hasfocus_Android·Focus机制解析和常见问题
  6. Java开发环境变量配置【java1.8安装及环境变量详细配置】【JAVA_HOME系统变量、CLASSPATH系统变量、系统环境变量Path】
  7. python字符串讲解
  8. oracle 取英文排序,Oracle中中文、数字,英文混杂形式的字段进行排序的方法
  9. 谈谈C++新标准带来的属性(Attribute)
  10. 动态规划,java实现算法导论15章钢条切割
  11. codevs 2651 孔子教学——同桌
  12. 读jQuery源码 jQuery.data
  13. Zookeeper使用案例
  14. otsu阈值分割算法原理_otsu(大津法阈值分割原理)
  15. 运放为什么可以虚短虚断
  16. 打砖块 java_java实现打砖块小游戏
  17. cesium制作飞机路线图
  18. 网易云音乐黑胶会员免费领取
  19. UT2011学习笔记
  20. NVIDIA Jetson: GStreamer 和 openMAX(gst-omx) 插件

热门文章

  1. 计算机基础课程的金课,我校8门课程获批省级线上“金课”
  2. Redis-常用数据结构
  3. 文本文件编码与格式转换
  4. 微信媒体服务器推流,干货:“微信+直播”成新媒体营销新方式
  5. 猫的计算机相关的网络语言,辟谣:猫咪的语言是喵?教你读懂“猫言猫语”,让你明白猫的内心...
  6. [固态硬盘协议 第3回] 你懂 PCIE 和 NVME是如何相依相恋?
  7. mysql block是什么_数据库中block代表什么意思?
  8. Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77
  9. 关于深圳户口从集体户口迁入朋友家庭户口的相关手续总结
  10. GParted图文磁盘分区教程