实验十 类继承与接口 二.doc_第1页
实验十 类继承与接口 二.doc_第2页
实验十 类继承与接口 二.doc_第3页
实验十 类继承与接口 二.doc_第4页
实验十 类继承与接口 二.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验十 类继承与接口(二)课程名称: 面向对象程序设计实验 实验项目名称: 实验十 类继承与接口 (二) 学生姓名: 葛添翼 专业: 计算0903 学号: 30901183 实验地点: 实验日期: 年 月 【实验目的】1掌握Java类的继承特点,包括子类声明、对象创建、成员变量的继承与隐藏、成员方法的继承与重写【实验内容】10-1程序阅读分析题。要求(1)有一个abstract类,类名为Employee。Employee的子类有YearWorker,MonthWorker和WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。Employee类有一个abstract方法,子类必须重写父类的earings()方法,给出各自领取报酬的具体方式。(2)有一个Company类,该类用employee数组作为成员,employee数组的单元可以是YearWorker对象的上转型对象,MonthWorker对象 的上转型对象或者WeekWorker对象的上转型对象。源程序:(请将源程序中补充的空缺代码处以下划线加粗显示):abstract class Employeepublic abstract double earnings();class YearWorker extends Employee/重写earnings()方法代码1:public double earnings()return 10000;class MonthWorker extends Employee/重写earnings()方法代码2:public double earnings()return 1000;class WeekWorker extends Employee /重写earnings()方法代码3:public double earnings()return 100;class CompanyEmployee employee;double salaries=0;Company(Employee employee)this.employee=employee;public double salariesPay()salaries=0;/计算salaries代码4:int i;for(i=0;iemployee.length;i+)salaries+=employeei.earnings();return salaries;return salaries;public class HardWorkpublic 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();10-2.检查下面代码是否有错,如果有错,写明错误原因,并修正错误。1. class Aaa int i; Aaa()i=-1; Aaa(int a) i = a; Aaa(double d)Aaa(int)d);是否出错:出错原因(如果出错):出错没有为A.Aaa定义方法Aaa(int)2. class Aaa int i; Aaa()i=-1; Aaa(int a) i = a; Aaa(double a)int b=(int)a;this(b); 是否出错:出错原因(如果出错):正确3. class Aaa int i;Aaa(int a) i = a;class Bbb extends Aaa Bbb() 是否出错: 出错原因(如果出错):正确4. class Aaa private int i; protected int j;class Bbb extends Aaa Bbb() i = 10; j = 99; 是否出错:出错原因(如果出错):错误超类中Private 类型的变量子类不能继承5. 编译下面程序,程序是否出错class A int i =100;class B extends A int i =10000;public static void main(String args)System.out.println(this.i);System.out.println(super.i);a) 是否出错:错误b) 出错原因(如果出错):不能在静态方法中使用this和super(2)如果将上述类B的int i =10000改为static int i =10000;类A的int i =100改为static int i =100;程序是否出错?出错原因(如果出错):出错。同上(3)如果将类B的main方法改为public static void main(String args) B b =new B();System.out.println(b.i); System.out.println(A)b.i); 程序是否出错? 出错原因(如果出错):出错不能强制将int类型转换为A类型。如果没出错, 给出结果:上面的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 args) Aaa a = new Aaa(10); 是否出错:出错。出错原因(如果出错):不能使用PUBLIC void 修饰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); 是否出错:出错原因(如果出错):出错for(int j=0;iai.length;j+)这句出现无限循环。8.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中定义的四个方法是否都是方法的重载,有没有重复定义的方法,如果有,那么哪几个方法是重复定义的?是的前面3个是重复定义的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 = new B(); b.show(); 上面程序中的方法覆盖是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论