实验八 计算薪水总和.doc_第1页
实验八 计算薪水总和.doc_第2页
实验八 计算薪水总和.doc_第3页
实验八 计算薪水总和.doc_第4页
实验八 计算薪水总和.doc_第5页
全文预览已结束

下载本文档

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

文档简介

实验八 计算薪水总和一.相关知识点多态性就是指父类的某个方法,其子类重写时,可以各自产生自己的功能行为。当一个类有很多子类时,并且这些子类都重写了父类中的某个方法,那么当把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,那么这个上转型对象在调用这个方法时就可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为。二.实验目的通过在abstract类中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由它的非abstract子类去完成。使用多态进行程序设计的核心技术是使用上转型对象,即将abstract类声明对象作为其子类的上转型对象,那么这个上转型对象就可以调用子类重写的方法。三.实验环境PC机 Windows操作系统 J2SDK1.4.2_15四.实验要求某个公司有3种不同的雇员,分别为A、B、C 3个级别。每个级别的月薪是互不相同的。编写一个程序计算公司一个月需要支付的全部薪水。要求有一个abstract类,类名为Employee。Employee的子类有AgrageEmployeer、BgrageEmployeer和CgrageEmployeer。Employee类必须有一个abstract方法:public abstract earnings(); 子类必须重写父类的earnings方法,给出各自的月薪水的具体数额。编写一个Company类,该类用Employee数组作为成员,Employee数组的单元可以是AgrageEmployeer、BgrageEmployeer、CgrageEmployeer的上转型对象。Company类提供计算月薪总和的方法,使得程序能输出Company对象需要支付的月薪水总额。五.程序模板 按模板要求,将【代码1】 【代码5】替换为Java程序代码。/模板:HardWork.javaabstract class Employee public abstract double earnings();class AgradeEmployee extends Employee 【代码1】 /重写earnings()方法class BgradeEmployee extends Employee 【代码2】 /重写earnings()方法。class CgradeEmployee extends Employee 【代码3】 /重写earnings()方法。class Company Employee employee; double salaries=0; Company(Employee employee) this.employee=employee; public double salariesPay() salaries=0; 【代码4】 /计算salaries return salaries; public class HardWork public static void main(String args) int a=10,b=56,c=231,totalNumber=0; totalNumber=a+b+c; System.out.println(公司总雇员数:+ totalNumber); Employee employee=new EmployeetotalNumber; 【代码5】 /创建Company对象,将employee传递给构造方法的参数 for(int i=0;ia;i+) employeei=new AgradeEmployee(); for(int i=a;ia+b;i+) employeei=new BgradeEmployee(); for(int i=a+b;ia+b+c;i+) employeei=new CgradeEmployee(); System.out.println(公司月薪水总额:+company.salariesPay(); 六.程序效果示例/模板:HardWork.javaabstract class Employee public abstract double earnings();class AgradeEmployee extends Employee public double earnings() return 5432.89;/【代码1】 /重写earnings()方法class BgradeEmployee extends Employee public double earnings() return 3422.29;/【代码2】 /重写earnings()方法。class CgradeEmployee extends Employee public double earnings() return 2412.45;/【代码3】 /重写earnings()方法。class Company Employee employee; double salaries=0; Company(Employee employee) this.employee=employee; public double salariesPay() salaries=0; for(int i=0;iemployee.length;i+) salaries=salaries+employeei.earnings();/【代码4】 /计算salaries。 return salaries; public class HardWork public static void main(String args)int a=10,b=56,c=231,totalNumber=0;totalNumber=a+b+c;System.out.println(公司总雇员数:+ totalNumber);Employee employee=new EmployeetotalNumber;Company company=new Company(employee);/【代码5】 /创建Company对象,将employee传/递给构造方法的参数for(int i=0;ia;i+) employeei=new AgradeEmployee(); for(int i=a;ia+b;i+) employeei=new BgradeEmployee(); for(int i=a+b;ia+b+c;i+) employeei=new CgradeEmployee(); System.out.println(公司月薪水总额:+company.salariesPay();七.实验指导(1)尽管abstract类不能创建对象,但 abstract类声明的对象可以存放子类对象的引用,即成为子类对象的上转型对象。由于 abstract类可以有 abstract方法,这样就保证子类必须要重写这些 abstract方法。由于数组employee的每个单元都是某个子类对象的上转型对象,实验中的【代码4】可以通过循环语句让数组employee的每个单元调用earnings方法,并将该方法返回的值累加到salaries,如下:public double salariesPay() salaries=0; for(int i=0;iemployee.length;i+) salaries=salaries+employeei.earnings(); return

温馨提示

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

评论

0/150

提交评论