继承与接口实验.doc_第1页
继承与接口实验.doc_第2页
继承与接口实验.doc_第3页
继承与接口实验.doc_第4页
继承与接口实验.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论