关于抽象类,接口的题目
为某研究所编写一个通用程序,用来计算每一种交通工具运行 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();}
}
关于抽象类,接口的题目相关推荐
- 抽象类+接口+内部类作业题及答案
抽象类+接口+内部类作业题 一.选择题 Person类和Test类的代码如下所示,则代码中的错误语句是( ).(选择一项) public class Person { public String na ...
- 抽象类+接口+内部类作业题
抽象类+接口+内部类作业题 一. 选择题 1. Person类和Test类的代码如下所示,则代码中的错误语句是( c ).(选择一项) public class Person { public ...
- 小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。
抽象类接口的理解 鲁迅的一句话:总之岁月漫长,然而值得等待. /* 抽象类中的面试题: 1.一个抽象类中可不可以没有抽象方法:可以,这样做的目的只有一个,就是不让其他类创建本类对象交给子类完成. 2. ...
- 继承 多态 抽象类 接口
面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...
- 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)
JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...
- python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)
一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...
- 185-186 抽象类+接口案例/运动员和教练
185-186 抽象类+接口案例/运动员和教练 需求:有乒乓球运动员.篮球运动员.乒乓球教练.篮球教练.签了出过交流,乒乓球教练.乒乓球运动员需要学习英语.请用所学知识分析,这个案例中有哪些具体类.哪 ...
- JAVA抽象类接口初始化块实验_抽象类和接口 - 逝水无痕7777的个人空间 - OSCHINA - 中文开源技术交流社区...
抽象类和接口 1.抽象类 抽象方法是只有方法签名,没有方法实现的方法.有抽象方法的类只能被定义成抽象类,抽象类可以没有抽象方法.抽象方法和抽象类必须使用abstract修饰符来定义. 抽象类不能被实例 ...
- day09 多态抽象类接口
多态抽象类接口 1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6: ...
- java抽象类和接口实验题目
编写程序,要求如下: (1)定义Biology(生物).Animal(动物)和Mankind(人)3个接口: (2)接口Biology声明breath()抽象方法: (3)接口Animal继承Biol ...
最新文章
- 吴思教授:揭秘视觉信息处理的闭环
- Android开发实践:如何设置NDK的编译选项
- [语义]情感分析方向近况·0908
- Oculus除创始人之外的第一位员工离职
- java hasfocus_Android·Focus机制解析和常见问题
- Java开发环境变量配置【java1.8安装及环境变量详细配置】【JAVA_HOME系统变量、CLASSPATH系统变量、系统环境变量Path】
- python字符串讲解
- oracle 取英文排序,Oracle中中文、数字,英文混杂形式的字段进行排序的方法
- 谈谈C++新标准带来的属性(Attribute)
- 动态规划,java实现算法导论15章钢条切割
- codevs 2651 孔子教学——同桌
- 读jQuery源码 jQuery.data
- Zookeeper使用案例
- otsu阈值分割算法原理_otsu(大津法阈值分割原理)
- 运放为什么可以虚短虚断
- 打砖块 java_java实现打砖块小游戏
- cesium制作飞机路线图
- 网易云音乐黑胶会员免费领取
- UT2011学习笔记
- NVIDIA Jetson: GStreamer 和 openMAX(gst-omx) 插件
热门文章
- 计算机基础课程的金课,我校8门课程获批省级线上“金课”
- Redis-常用数据结构
- 文本文件编码与格式转换
- 微信媒体服务器推流,干货:“微信+直播”成新媒体营销新方式
- 猫的计算机相关的网络语言,辟谣:猫咪的语言是喵?教你读懂“猫言猫语”,让你明白猫的内心...
- [固态硬盘协议 第3回] 你懂 PCIE 和 NVME是如何相依相恋?
- mysql block是什么_数据库中block代表什么意思?
- Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77
- 关于深圳户口从集体户口迁入朋友家庭户口的相关手续总结
- GParted图文磁盘分区教程