欢迎来到天天文库
浏览记录
ID:38675351
大小:228.12 KB
页数:10页
时间:2019-06-17
《实验5 继承与接口(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验5、继承与接口(二)一、实验目的1.子类的继承性2.深入理解类的继承的基本概念及实现。3.了解Object及对Object类的主要方法equals进行重写。4.掌握super关键字的作用。5.掌握抽象类与接口的基本概念及实际应用6.掌握对象多态性的作用。7.掌握接口的基本概念及实际应用。8.掌握接口回调的概念及运行机制。二、实验内容及步骤1、重写Object类的equals方法任务一:使用继承自Object类的equals方法进行Person对象的比较操作。(1)源代码如下:classPerson{privateStringnam
2、e;privateintage;publicPerson(Stringname,intage){this.name=name;this.age=age;}//getter与setter方法略。publicStringtoString(){return“姓名:”+this.name+”;年龄:”+this.age;}}publicclassPersonDemo{publicstaticvoidmain(Stringargs[]){Personperson1=newPerson(“李兴华”,30);Personperson2=newPer
3、son(“李兴华”,30);System.out.println(person1.equals(person2)?”是同一个人。”:”不是同一个人。”);}}(2)编译并运行应用程序。(3)实验报告将运行结果写在实验报告中。思考:应用程序中person1对象调用的equals方法是从哪个类继承的,请查看源代码,说明此equals方法的作用,即比较的内容。任务二:修改上述源代码Person类,使PersonDemo应用程序执行结果为“同一个人”。2、对象的上转型对象任务一:对象的上转型对象接收任意子类类型的对象(1)使用Object接收
4、一切的引用类型对象。源代码:classA{publicStringgetInfo(){return“HelloWorld!!!”;}}publicclassADemo{publicstaticvoidmain(Stringargs[]){Objectobj=newA();System.out.println(obj.getInfo());System.out.println(obj.toString());Aa=(A)obj;System.out.println(a.getInfo());System.out.println(a.to
5、String());}}(2)编译并运行程序。(3)实验报告将运行结果写在实验报告中。如果程序编译为通过,或运行时有错误提示,请说明原因,并将错误改正。任务二:上转型实现多态性(1)实例学习²不使用上转型对象实现多态性源代码如下:²使用上转型对象实现多态性:(2)阅读上述两个源代码,深刻理解使用上转型对象实现多态性机制。编译并运行第二个程序。(3)实验报告将运行结果写在实验报告中。3、抽象类与上转型对象练习任务一:通过对上述实验内容的实践与学习,根据要求填写代码。(1)要求:²有一个abstract类,类名为Employee;²该类有
6、一个abstract方法:publicabstractdoubleearnings();;²Employee的子类有YearWorker、MontthWorker和WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。²子类必须实现父类的earnings()方法,返回各自领取薪水数。²有一个Company类,该类用employee数组作为成员,employee数组的单元可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象或Week
7、Worker对象的上转型对象。²程序能输出Company对象一年需要支付的薪水总额。(2)代码模板按模板要求,将代码1-4替换为java程序代码。abstractclassEmployee{publicabstractdoubleearnings();}classYearWorkerextendsEmployee{【代码1】//实现earnings()方法}classMonthWorkerextendsEmployee{【代码2】//实现earnings()方法}classWeekWorkerextendsEmployee{【代码3】
8、//实现earnings()方法}classCompany{Employee[]employee;doublesalaries=0;Company(Employee[]employee){this.employee=em
此文档下载收益归作者所有