已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深 圳 大 学实 验 报 告课程名称: Java 实验序号: 实验2 实验名称: 继承与接口 班 级: 计算机3 姓 名: 卢志敏 同 组 人: 实验日期: 2008 年 11 月 16 日 教师签字: 一、实验目的1.继承l 子类的继承性l 子类对象的创建过程l 成员变量的继承与隐藏l 方法的继承与重写2. 上转型对象掌握上转型对象的使用3. 接口回调掌握接口回调技术二、实验环境JDK1.5Winxp三、实验步骤与方法实验1 编写一个Java应用程序,除了主类外,该程序中还有4个类:People、ChinaPeople、AmericanPeople类。该程序具体要求如下:l People类有访问权限是protected的double型变量:height和weight,以及public void speakHello()、public void averageHeight() 和public void averageWeight()方法。l ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。l AmericanPeople类是People的子类,新增public void americanBoxing()方法。要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。l BeijingPeople是ChinaPelple的子类,新增public void beijingOpera()方法。要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。实验2 要求有一个abstract类,类名为Employee。Employee的子类有YearWorker、MonthWorker和WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。Employee类有个abstract方法:Public abstract earnings();子类必须重写父类的earnings()方法,给出各自领取薪水的具体方式。有一个Company类,该类用Employee数组作为成员,Employee数组的单元可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象、WeekWorker对象的上转型对象。程序能输出Company对象一年需要支付的薪水总额。实验3卡车要装载一批货物,货物有3种商品:电视、计算机和洗衣机。需要计算出大货车和小货车各自做载重的3种货物的总重量。要求有一个ComputerWeight()接口,该接口中有一个方法:Public double computeWeight()有3个实现该接口的类:Telvision、Computer和WashMachine。这3类通过实现接口computerTotalSales给出自重。有一个Car类,该类用ComputeWeight接口类型的数组作为成员,那么该数组的单元就可以存放Television对象的引用、Computer对象的引用或WashMachine对象引用。程序能输出Car对象所能装载的货物的总重量。 按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。四、结果与分析实验1源代码:class People protected double weight,height; public void speakHello( ) System.out.println(yayawawa); public void averageHeight() height=173; System.out.println(average height:+height); public void averageWeight( ) weight=70; System.out.println(average weight:+weight); class ChinaPeople extends People public void speakHello() System.out.println(你好,吃了吗); public void averageHeight() System.out.println(中国人的平均身高:173.0厘米); public void averageWeight() System.out.println(中国人的平均体重:67.34公斤); public void chinaGongfu() System.out.println(坐如钟,站如松,睡如弓); class AmericanPeople extends People public void speakHello() System.out.println(How do you do); public void averageHeight() System.out.println(American Average height: 188.0 cm); public void averageWeight() System.out.println(American Average weight: 80.23 kg); public void americanBoxing() System.out.println(直拳 钩拳); class BeijingPeople extends ChinaPeople public void speakHello() System.out.println(您好); public void averageHeight() System.out.println(北京人的平均身高: 167.0 cm); public void averageWeight() System.out.println(北京人的平均体重: 68.5 kg); public void beijingOpera() System.out.println(京剧术语); public class Example public static void main(String args ) ChinaPeople chinaPeople=new ChinaPeople( ); AmericanPeople americanPeople=new AmericanPeople( ); BeijingPeople beijingPeople=new BeijingPeople( ); chinaPeople.speakHello( ); americanPeople.speakHello( ); beijingPeople.speakHello( ); chinaPeople.averageHeight( ); americanPeople.averageHeight( ); beijingPeople.averageHeight( ); chinaPeople.averageWeight( ); americanPeople.averageWeight( ); beijingPeople.averageWeight( ); chinaPeople.chinaGongfu( ); americanPeople.americanBoxing( ); beijingPeople.beijingOpera( ) ; beijingPeople.chinaGongfu( ); 运行效果截屏:实验2源代码: abstract class Employee public abstract double earnings( ); class YearWorker extends Employee public double earnings( ) return 50000 ; class MonthWorker extends Employee public double earnings( ) return 12*2300; class WeekWorker extends Employee public double earnings( ) return 48*500; class Company Employee employee; double salaries; Company (Employee employee) this.employee=employee; public double salariesPay() salaries=0; for(int i=0;iemployee.length;i+) salaries=salaries+employeei.earnings(); return salaries; public class HardWork public static void main(String args) Employee employee=new Employee20; for(int i=0;iemployee.length;i+) if(i%3=0) employeei=new WeekWorker(); else if(i%3=1) employeei=new MonthWorker(); else if(i%3=2) employeei=new YearWorker(); Company company=new Company(employee); System.out.println(公司年工资总额:+ company.salariesPay();/调用Company对象的方法输出工资总额 运行截屏:实验3源代码:interface ComputerWeightpublic double computeWeight();class Television implements ComputerWeightpublic double computeWeight()return 10;/实现computeWeight()方法class Computer implements ComputerWeightpublic double computeWeight()return 15;/实现computeWeight()方法class WashMachine implements ComputerWeightpublic double computeWeight()return 30.5;/实现computeWeight()方法class CarComputerWeight goods;double totalWeights=0;Car(ComputerWeight goods)this.goods=goods;public double getTotalWeights()totalWeights=0;for(int i=0;igoods.length;i+)totalWeights+=puteWeight();return totalWeights;public class Roadpublic static void main(String args)ComputerWeight goodsOne=new ComputerWeight50,goodsTwo=new ComputerWeight22;for(int i=0;igoodsOne.length;i+)if(i%3=0)goodsOnei=new Television();else if(i%3=1)goodsOnei=new Computer();else if(i%3=2)goodsOnei=new WashMachine(); for(int i=0;igoodsTwo.length;i+)if(i%3=0)goodsTwoi=new Television();else if(i%3=1)goodsTwoi=new Computer();else if(i%3=2)goodsTwoi=new WashMachine(); Car 大货车=new Car(goodsOne);System.out.println(大货车的装载货物重量:+大货车.getTotalWeights();Car 小货车=new Car(goodsTwo);System.out.println(小货车的装载货物重量:+小货车.getTotalWeights();运行效果截屏:五、思考题解答实验1 就本程序而言,People类中的public void speakHello()public void averageHeight()Public void averageWeight()三个方法的方法体中的语句是否可以省略。解答:可以省略,子类会重写父类的方法,所以本程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新建精密机械电子CNC智能制造生产线项目可行性研究报告模板拿地申报
- 2025北京牛栏山一中高三(上)期中英语试题及答案
- 仙人醉酒业产业园扩能提升项目可行性研究报告模板-备案审批
- 生命教育主题作文
- 会员申请的推广员资格审核怎么设置商城管理员应在哪个后台哪里进行审核通过操作-?实战经验告诉你答案
- 胆囊结石基础理论考核试题
- 2026道德与法治四年级活动园 冲突解决
- 医院核磁共振工作制度
- 单位自行消毒工作制度
- 卫生监督所日常工作制度
- 考公二十四节气考试题及答案
- 负荷计算表-冷负荷热负荷
- 2025湖北省高考生物试卷(含解析)
- 2025浙江宁波市水务环境集团有限公司招聘笔试参考题库附带答案
- 窗口人员礼仪培训课件
- 工业厂房施工环境保护体系与措施
- (医疗药品管理)某大型制药集团营销大纲
- 临时管道使用管理制度
- 树木砍伐合同简单协议书
- (完整版)材料科学基础笔记
- 高三日语复习3:高考日语语法翻译练习题
评论
0/150
提交评论