要求有一个 abstract 类,类名为 Employee。Employee 的子类有 YearWorker、MonthWorker、WeekWorker。YearWorker 对象按年领取薪水,MonthWorker 按月领取薪水,WeekWorker 按周领取薪水。Employee 类有一个 abstract 方法:

public abstract double earnings();

子类必须重写父类的 earnings()方法,给出各自领取报酬的具体方式。有一个 Company 类,该类用 Employee 对象数组作为成员,Employee 对象数组的单元可以是 YearWorker 对象的上转型对象、MonthWorker 对象的上转型对象或 WeekWorker 对象的上转型对象。程序能输出 Company 对象一年需要支付的薪水总额。

abstract class Employee {public abstract double earnings();
}
class YearWorker extends Employee {int YearWorker;double yearSalary;YearWorker(int y, double s){YearWorker = y;yearSalary = s;}public double earnings(){ return YearWorker * yearSalary;}   //重写earnings()方法
}
class MonthWorker extends Employee {int MonthWorker;double monthSalary;MonthWorker(int m, double s){MonthWorker = m;monthSalary = s;}public double earnings(){ return MonthWorker * monthSalary;}  //重写earnings()方法
}
class WeekWorker extends Employee {int WeekWorker;double weekSalary;WeekWorker(int w, double s){WeekWorker = w;weekSalary = s;}public double earnings(){ return WeekWorker * weekSalary;}      //重写earnings()方法。
}
class Company {Employee[] employee;double salaries=0;Company(Employee[] employee) {this.employee=employee;}public double salariesPay() {salaries=0;salaries = employee[0].earnings() + employee[1].earnings() + employee[2].earnings();//计算salaries。return salaries;}
}
public class CompanySalary {public static void main(String args[]) {Employee[] employee=new Employee[29]; //公司有29名雇员for(int i=0;i<employee.length;i++) {   //雇员简单地分成三类if(i%3==0)employee[i]=new WeekWorker(16,1200.0);else if(i%3==1)employee[i]=new MonthWorker(11,8000.0);else if(i%3==2)employee[i]=new YearWorker(2,120000.0);} Company company=new Company(employee);System.out.println("公司薪水总额:"+company.salariesPay()+"元");}
}

要求有一个 abstract 类,类名为 Employee。Employee 类有一个 abstract 方法:public abstract double earnings();相关推荐

  1. 一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)

    在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记. 什么是页面加载管理类呢?(大佬可直接跳过翻看实现过程) 如果能有这个问题,那么很好,哈哈哈,你和我一样,刚开始都挺疑惑 ...

  2. 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)

    面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...

  3. 写出一个类People,并由该类做基类派生出子类Employee和Teacher

    写出一个类People,并由该类做基类派生出子类Employee和Teacher.其中People 类具有name.age两个保护成员变量,分别为String类型.整型,且具有公有的getAge成员函 ...

  4. 使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号

    运行结果如下: 题目: 使用面向对象思想,输出员工信息并计算员工的工资. 实现过程为:a.定义一个部门(Department)类,该类有部门编号(Id).部门名称(Name)属性:b.再定义一个员工( ...

  5. .使用面向对象思想,输出员工信息并计算员工的工资。实现过程为:定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性; 再定义一个员工(Employee)类,该类的属

    package cn.bdqn09;/部门类 public class Department {String id;//部门编号String name;//部门名称public void show() ...

  6. java源程序可以有几个主类_Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。_学小易找答案...

    [填空题]分析以下程序的执行结果 #include using namespace std; class Sample { int x; int y; public: Sample(int a,int ...

  7. php声明一个类的关键字,php中怎么实例化一个类

    php中怎么实例化一个类 发布时间:2021-03-05 10:15:50 来源:亿速云 阅读:87 作者:小新 这篇文章主要介绍php中怎么实例化一个类,文中介绍的非常详细,具有一定的参考价值,感兴 ...

  8. abstract类_【Java】类的结构 - Nemo

    类与对象 类中主要包括五种结构,下面进行对这五种结构进行详细的介绍. 1. 面向对象与面向过程 面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做. 面向对象:强调具备了功能的对象,以类/对象为 ...

  9. php类实例化js,php中如何实例化一个类_后端开发

    php实现字母数字混合验证码_后端开发 js中可以通过后缀加随机数[Math.random()]来实现刷新验证码,PHP验证传过来的参数code和当前session存储的验证码进行比较,若是正确返回1 ...

最新文章

  1. centos+ffmpeg安装配置+切片
  2. EnforceLearning-主动强化学习
  3. 用html实现网页版的拼图游戏,jQuery实现网页拼图游戏
  4. @cacheable 是否缓存成功_缓存策略:如何使用缓存来减少磁盘IO?
  5. java连接mysql执行ddl_dljd_(007_009)_jdbc执行DQL/DML/DDL语句
  6. 如果你需要在 XHTML 中声明 DOCTYPE,必须使用到jsp:text动作元素
  7. 芯片优缺点_电子工程师的未来在哪里?芯片领域的人该反问一下自己了
  8. 51单片机开发工具安装
  9. LitJson扩展支持float类型和自定义类型
  10. 大数据实战——微博舆情大数据分析
  11. JavaScript函数(二)回调函数
  12. 使用ECharts加载大数据量数据
  13. solr增量 dih deltaimport 入门
  14. java基础总结笔记
  15. 从你的全世界路过---陌陌X-SIGN还原
  16. Weblogic报错BEA-141281
  17. 微信小程序的学生选课系统设计与实现的源码+文档
  18. 怎么画好人体结构?男人、女人、孩子的身体比例画法
  19. 4.2.2 屏幕保护程序
  20. 赋能聚变:大连软件产业20年发展论坛成功举办

热门文章

  1. AREngine深度图优化之一基于两基带统计的补洞方法
  2. ubuntu 防火墙命令整理
  3. Ubuntu开启防火墙端口
  4. DNF外i挂云霄见血
  5. OS开源项目周报0105
  6. Window下进行PHP的redis扩展安装
  7. Oracle学习笔记(三)——排序分组
  8. 华为 android 11,EMUI 11抢先亮相!华为P40 Pro已升:底层非Android 11
  9. 你需要一台高速的电脑吗?
  10. 读书无用 是对年轻人最大的骗局