欢迎来到天天文库
浏览记录
ID:47110513
大小:60.50 KB
页数:7页
时间:2019-08-05
《实验十 类继承与接口 二》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验十类继承与接口(二)课程名称:面向对象程序设计实验实验项目名称:实验十类继承与接口(二)学生姓名:葛添翼专业:计算0903学号:30901183实验地点:实验日期:年月【实验目的】1.掌握Java类的继承特点,包括子类声明、对象创建、成员变量的继承与隐藏、成员方法的继承与重写【实验内容】10-1程序阅读分析题。要求(1)有一个abstract类,类名为Employee。Employee的子类有YearWorker,MonthWorker和WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。Employee类有
2、一个abstract方法,子类必须重写父类的earings()方法,给出各自领取报酬的具体方式。(2)有一个Company类,该类用employee数组作为成员,employee数组的单元可以是YearWorker对象的上转型对象,MonthWorker对象的上转型对象或者WeekWorker对象的上转型对象。源程序:(请将源程序中补充的空缺代码处以下划线加粗显示):abstractclassEmployee{publicabstractdoubleearnings();}classYearWorkerextendsEmployee{//重写earnings()方法代码1:publicdo
3、ubleearnings(){return10000;}}classMonthWorkerextendsEmployee{//重写earnings()方法代码2:publicdoubleearnings(){return1000;}}classWeekWorkerextendsEmployee{//重写earnings()方法代码3:publicdoubleearnings(){return100;}}classCompany{Employee[]employee;doublesalaries=0;Company(Employee[]employee){this.employee=empl
4、oyee;}publicdoublesalariesPay(){salaries=0;//计算salaries代码4:inti;for(i=0;i5、oyee[i]=newWeekWorker();elseif(i%3==1)employee[i]=newMonthWorker();elseif(i%3==2)employee[i]=newYearWorker();}Companycompany=newCompany(employee);System.out.println("公司年工资总额:"+company.salariesPay());}}10-2.检查下面代码是否有错,如果有错,写明错误原因,并修正错误。1.classAaa{inti;Aaa(){i=-1;}Aaa(inta){i=a;}Aaa(doubled){Aaa((in6、t)d);}}是否出错:出错原因(如果出错):出错没有为A.Aaa定义方法Aaa(int)2.classAaa{inti;Aaa(){i=-1;}Aaa(inta){i=a;}Aaa(doublea){intb=(int)a;this(b);}}是否出错:出错原因(如果出错):正确3.classAaa{inti;Aaa(inta){i=a;}}classBbbextendsAaa{Bbb(){}}是否出错:出错原因(如果出错):正确4.classAaa{privateinti;protectedintj;}classBbbextendsAaa{Bbb(){i=10;j=99;}}是否出错:7、出错原因(如果出错):错误超类中Private类型的变量子类不能继承5.编译下面程序,程序是否出错classA{inti=100;}classBextendsA{inti=10000;publicstaticvoidmain(String[]args){System.out.println(this.i);System.out.println(super.i);}}a)是否出错:错误b)出错原因(如果出错):不能在静态方
5、oyee[i]=newWeekWorker();elseif(i%3==1)employee[i]=newMonthWorker();elseif(i%3==2)employee[i]=newYearWorker();}Companycompany=newCompany(employee);System.out.println("公司年工资总额:"+company.salariesPay());}}10-2.检查下面代码是否有错,如果有错,写明错误原因,并修正错误。1.classAaa{inti;Aaa(){i=-1;}Aaa(inta){i=a;}Aaa(doubled){Aaa((in
6、t)d);}}是否出错:出错原因(如果出错):出错没有为A.Aaa定义方法Aaa(int)2.classAaa{inti;Aaa(){i=-1;}Aaa(inta){i=a;}Aaa(doublea){intb=(int)a;this(b);}}是否出错:出错原因(如果出错):正确3.classAaa{inti;Aaa(inta){i=a;}}classBbbextendsAaa{Bbb(){}}是否出错:出错原因(如果出错):正确4.classAaa{privateinti;protectedintj;}classBbbextendsAaa{Bbb(){i=10;j=99;}}是否出错:
7、出错原因(如果出错):错误超类中Private类型的变量子类不能继承5.编译下面程序,程序是否出错classA{inti=100;}classBextendsA{inti=10000;publicstaticvoidmain(String[]args){System.out.println(this.i);System.out.println(super.i);}}a)是否出错:错误b)出错原因(如果出错):不能在静态方
此文档下载收益归作者所有