继承与接口练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/********
以下作业在代码编写过程中要按照注释规范对类,方法,属性,局部变量进行注释 关键代码片段也需要进行注释说明 ********/
1、 根据如下图示,使用继承编写出对应的程序。然后分别创建对应的车辆,调用方法输出
车辆信息,并测试每辆车包含的其他方法。尽量让你的程序变得有意思一些(属性和方法可添加和扩展)。
2、 请编码实现动物世界的继承关系:
动物(Animal )具有行为:吃(eat )、睡觉(sleep ) 动物包括:兔子(Rabbit ),老虎(Tiger )
这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。 请通过继承实现以上需求,并编写测试类AnimalTest 进行测试
3、 请使用接口编码实现如下需求:
乐器(Instrument )分为:钢琴(Piano)、小提琴(Violin) 各种乐器的弹奏( play )方法各不相同。 编写一个测试类InstrumentTest ,要求:
编写方法testPlay ,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。 在main 方法中创建不同的乐器对象,通过testPlay 的弹奏测试方法进行测试。
4、 定义Fight 接口,其中有一个打人的动作(fight )。让胖人(FatFat )和瘦人(Thinthin )
分别实现打人接口,但具有不同的打人结果:胖人打人疼,瘦人打人不疼。编写测试类,使用多态的方式对不同人打人的动作进行测试,输出胖人和瘦人打人的动作。
5、 医生(Doctor )有姓名(name )、编号(idNumber )和地址(address )等基本信息,
还都具有量体温 (temperature)和开药(giveMedicine )的方法。
巴士是汽车吗? 卡车是汽车吗? 出租车是汽车吗?
最大载客数量
报站 让座提示 引擎数量 外观颜色 品牌 车牌 刹车 加速
汽车
最大载重量
卸货 所属公司 最大载客数量
打发票
行为
请问:出租车包含哪些属性和行为呢?
医生又分为普通医生和主治医生。普通医生具有上述所有信息。主治医生除以上基本信息之外还有特有的信息:专业(speciality ),以及特有的方法会诊(consultation )。重写开药(giveMedicine )方法,普通医生只能开具普通药物,主治医生除了开具普通药物之外还可以开具处方药。
请根据他们之间的关系,创建一个Doctor 类,包含有关医生的基本信息,在利用继承写一个普通医生(CommDocotor )和主治医生(AdvanceDoctor ),并创建测试类Test.java 在main 方法中利用这些类的对象测试显示他们的各自的信息。
6、 用面向对象的思想编写类,描述汽车,宝马,奔驰车和驾驶员的关系.
提示:宝马和奔驰继承自汽车类,具有启动,运行,停止的方法。驾驶员具有驾驶方法,可以通过驾驶方法驾驶各种类型的汽车。
7、 根据如下图示,使用接口编写出对应的程序。
然后创建一个负责打印的测试类,并创建一个测试打印方法,将打印机接口作为参数,可以使用传入的打印机打印信息。
分别创建不同类型的打印机对象,然后通过打印测试类的测试打印方法进行测试,调用打印机的打印方法。体会多态的优点。
8、 电脑主板上的PCI 插槽的规范就类似于Java 接口 。
彩色打印机
打印机
黑白打印机
打印效果:彩色
打印效果:黑白
打印
打印
创建一个PCI 接口:包括start 启动,和stop 停止方法。
创建声卡SoundCard.java 实现该接口,启动输出“Du du...”,停止输出“Sound stop ” 网卡SoundCard 实现该接口,启动输出“Send...”,停止输出“Network stop ” 显卡DisplayCard 实现该接口,启动输出“show...”,停止输出“Display stop ” 然后使用Java 接口作为类型,创建对应的对象,调用相应的方法实现测试。
9、 升级第7题题,创建MainBoard 主板类,创建usePCICard 方法,模拟主板上可以插
入任意符合PCI 插槽规范的卡,将PCI 接口作为参数类型,调用对应的启动和停止方法。
然后创建不同的的PCI 对象,使用usePCICard 测试,体会通过更换实现接口的类来更换系统的实现。 10、 升级第1题,为汽车添加运行状况方法,重写车辆的运行状况方法:出租车输出,
正在送乘客前往机场;卡车输出,疯狂拉土车正在全速奔跑;巴士输出,人太多了坐下一辆。
分别实例出租车,卡车,巴士对象,并测试输出车辆信息,调用方法测试不同对象的方法。
定义跟踪车辆运行状况的类CheckCar ,再创建方法checkCarState ,使用多态实现对各种车辆运行状况的检查。
声卡
显卡
网卡 每种卡的内部结构都不相同,可以把声卡、
网卡、显卡都插在PCI 插槽上,而不用担心哪个插槽是专门插哪个卡的
主板
11、定义常量接口Constant,在其中定义如下系统中所需的静态常量。
3.1415926; // 圆周率
8844.43; // 喜马拉雅
180; // 三角形内角和
300000; // 光速,单位(公里/秒)
"你好"; //中文问候
12、编写接口Addition,定义add方法,参数是两个int类型,编写此接口的两种实现,
一种是将参数相加后输出,一种是相连后输出。编写测试类进行测试。
13、鼠标(Mouse)和打印机(Printer)类都实现了USB接口,USB接口具有输入(in)
和输出(out)的动作。
鼠标具有属性整型的x和y坐标,还具有布尔型的left和right属性,代表按下了左键和右键。鼠标的输出方法可以输出鼠标的品牌,当前按下了左键还是右键,以及当前的x和y坐标。输入方法不具体实现。
打印机具有属性字符串型的打印内容,输出方法可以提示**品牌的打印机打印内容成功。打印机还有打印print()方法,可以输出当前的的打印内容
14、二战期间,战争国间谍活动非常密切,所有英国间谍(BritishSpy)有讲英语的特
点(speak()方法),所有德国间谍(GermanSpy)都具有讲德语的特点(sprechen方法)。
还有一种双重间谍,既可以讲英语又可以讲德语,可以分别输出Hello和Gutentag。
情报机关(Agency)具有两个方法一个是军情5处(toMI5)的间谍测试方法,可以传入英国间谍,并调用讲英语的方法,输出结果;另一个是德国情报处(inGermany)的间谍测试方法,可以传入德国间谍,并调用讲德语的方法,输出结果。
创建德国间谍和英国间谍分别进行测试。
创建双重间谍进行测试,看是否能同时通过军情5处和德国情报处的间谍检测。
提示:定义两个接口BritishSpy(英国间谍)和GermanSpy(德国间谍)。
15、使用面向对象的思想实现龟兔赛跑。
提示:创建Rabbit和Tortoise类分别代表兔子和乌龟,分别具有属性speed代表兔子和乌龟的速度;具有方法run代表跑步动作,run方法有一个类型为double的参数,代表跑步的长度,通过长度除以速度计算出跑步所需的时间,并输出。
创建Match类代表比赛类,定义length属性代表比赛的跑步长度,定义begin方法,将兔子和乌龟作为参数传入,在方法中分别调用兔子和乌龟的跑步方法,输出跑步所需的时间。
创建测试类进行测试