版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验十 类继承与接口(二) 课程名称: 面向对象程序设计实验 实验项目名称: 实验十 类继承与接口 (二) 学生姓名: 专业: 学号: 实验地点: 实验日期: 年 月 【实验目的】1掌握Java类的继承特点,包括子类声明、对象创建、成员变量的继承与隐藏、成员方法的继承与重写【实验内容】10-1程序阅读分析题。要求(1)有一个abstract类,类名为Employee。Employee的子类有YearWorker,MonthWorker和WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。Employee类有一个abs
2、tract方法,子类必须重写父类的earings()方法,给出各自领取报酬的具体方式。(2)有一个Company类,该类用employee数组作为成员,employee数组的单元可以是YearWorker对象的上转型对象,MonthWorker对象 的上转型对象或者WeekWorker对象的上转型对象。源程序:(请将源程序中补充的空缺代码处以下划线加粗显示):abstract class Employeepublic abstract double earnings();class YearWorker extends Employee/重写earnings()方法代码1:class Mont
3、hWorker extends Employee/重写earnings()方法代码2:class WeekWorker extends Employee /重写earnings()方法代码3:class CompanyEmployee employee;double salaries=0;Company(Employee employee)this.employee=employee;public double salariesPay()salaries=0;/计算salaries代码4:return salaries;public class HardWorkpublic static vo
4、id 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();代码:abstr
5、act class Employeepublic abstract double earnings();class YearWorker extends Employee/重写earnings()方法 public double earnings() return 80000.0; class MonthWorker extends Employee public double earnings() return 60000.0; class WeekWorker extends Employee public double earnings() return 40000.0; class C
6、ompanyEmployee employee;double salaries=0;Company(Employee employee)this.employee=employee;public double salariesPay()salaries=0;for(int i = 0;i employee.length; i+)salaries = salaries + employeei.earnings(); return salaries;public class HardWorkpublic static void main(String args)Employee employee=
7、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();10-2.检查下面代码是否有错,如果有错,写明错误原因,并修正错误。1. class Aaa
8、 int i; Aaa()i=-1; Aaa(int a) i = a; Aaa(double d)Aaa(int)d);是否出错:是。出错原因(如果出错):构造器里不能调用构造器。改为Aaa(double d)i = (int) d;2. class Aaa int i; Aaa()i=-1; Aaa(int a) i = a; Aaa(double a)int b=(int)a;this(b); 是否出错:错出错原因(如果出错):this(参数)只能为第一句。改为Aaa(double a) this(int)a);3. class Aaa int i;Aaa(int a) i = a;cl
9、ass Bbb extends Aaa Bbb() 是否出错: 错, 出错原因(如果出错):Bbb() 中没有调用Aaa中的构造器,改为Bbb()super(10);4. class Aaa private int i; protected int j;class Bbb extends Aaa Bbb() i = 10; j = 99; 是否出错:错出错原因(如果出错):Bbb的直接超类Aaa中的实例变量i权限为private,在Bbb中不可继承,将int i;的权限改为至少为protected。5. 编译下面程序,程序是否出错class A int i =100;class B exten
10、ds A int i =10000;public static void main(String args)System.out.println(this.i);System.out.println(super.i);a) 是否出错:是b) 出错原因(如果出错):(2)如果将上述类B的int i =10000改为static int i =10000;类A的int i =100改为static int i =100;程序是否出错?出错原因(如果出错):出错。不能在静态上下文中引用this和super。(3)如果将类B的main方法改为public static void main(String
11、 args) B b =new B();System.out.println(b.i); System.out.println(A)b.i); 程序是否出错? 出错原因(如果出错):出错。(A)b.i错误,应该为A.i,并将类A的int i =100改为static int i =100;如果没出错, 给出结果:上面的System.out.println(b.i)的含义: System.out.println(A)b.i) 的含义: 6. class Aaa int i; public void Aaa(int a) i=a; public static void main(String ar
12、gs) Aaa a = new Aaa(10); 是否出错:是出错原因(如果出错):public void Aaa(int a) i=a;应为构造器,不是方法,改为public Aaa(int a) i=a;7.class Aaa public static void main(String args)int a=new int5; for( int i=0;ia.length;i+) for(int j=0;iai.length;j+) aij= (int)(100*Math.random(); System.out.println(aij); 是否出错:是出错原因(如果出错):int a=
13、new int5;中没有列数量,改为int a=new int55;而且for(int j=0;iai.length;j+)中iai.length;应为j ai.length8.class A int abc(int i)return 1; /方法1 int abc(int j)return 2; /方法2 int abc(int i,int j)return 3; /方法3 void abc(int i) /方法4是否有错: 是。上面类A中定义的四个方法是否都是方法的重载,有没有重复定义的方法,如果有,那么哪几个方法是重复定义的?不是,有重复定义的方法,方法1,2,4为方法重复定义。9. class A void show() System.out.println(A类的show(); class B extends A int show() System.out.println(B类的show(); public static void main(String args) B b = ne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026毕节幼儿面试题目及答案
- 2026北清附小面试题目及答案
- 2025年中国球袋市场调查研究报告
- 2025年中国燃气壁挂炉市场调查研究报告
- 2025年中国混纺亚麻布市场调查研究报告
- 2025年中国泡棉贴市场调查研究报告
- 2025年中国棉麻毛衫市场调查研究报告
- 2025年中国切管刀市场调查研究报告
- 2026版高考语文总复习讲义检测练(五) 叙述特征的总综合考查
- 肿瘤患者骨髓抑制的护理
- 南昌市市属国有企业2026年上半年招聘【293人】笔试参考题库及答案解析
- 2026年度青岛市市属事业单位公开遴选工作人员(51人)考试参考题库及答案解析
- 重庆一中高2026届高三5月三诊考试英语+答案
- 2026年苏科版(新教材)小学信息技术六年级下册(全册)同步练习及答案
- 初中语文七年级上册第20课《狼》大单元视域下的深度学习教案
- 2026年浅静脉留置针的最美固定课件
- 2026年上半年教师资格证小学数学综合素质真题单套试卷
- 初中物理滑轮基础练习题及答案
- 深圳市龙华产业资本投资有限公司招聘笔试题库2026
- 2026年中小学教师的培训需求问题调研与分析报告
- 化工(危险化学品)企业安全隐患排查指导手册(石油化工企业专篇2025年版)-
评论
0/150
提交评论