Cola公司的雇员分为以下若干类:(知识点:多态) [必做
题]
• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的
姓名,员工的生日月份。方法:getSalary(int month) 根据参数
月份来确定工资,如果该月员工过生日,则公司会额外奖励
100 元。
• 4.2 SalariedEmployee : ColaEmployee 的子类,拿固定工
资的员工。属性:月薪
课后作业
• 4.3 HourlyEmployee :ColaEmployee 的子类,按小时拿工
资的员工,每月工作超出160 小时的部分按照1.5 倍工资发
放。属性:每小时的工资、每月工作的小时数
• 4.4 SalesEmployee :ColaEmployee 的子类,销售人员,
工资由月销售额和提成率决定。属性:月销售额、提成率
• 4.5 定义一个类Company,在该类中写一个方法,调用该
方法可以打印出某月某个员工的工资数额,写一个测试类
TestCompany,在main方法,把若干各种类型的员工放在一
个ColaEmployee 数组里,并单元出数组中每个员工当月的
工资。

package gc;

public class ColaEmployee {
protected String name;
protected int month; public ColaEmployee() {
super(); } public ColaEmployee(String name, int month) {
super();
this.name = name;
this.month = month;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
public int getMonth() {
return month;
} public void setMonth(int month) {
this.month = month;
} public double getSalary(int month) {
return 0; }
}
package gc;

public class SalariedEmployee extends ColaEmployee{
double monthSalary; public SalariedEmployee() {
super(); } public SalariedEmployee(String name, int month, double monthSalary) {
super(name, month);
this.monthSalary = monthSalary;
} public double getSalary(int month) {
if (super.getMonth() == month) {
return monthSalary + 100;
} else {
return monthSalary;
}
}
}
package gc;

public class HourlyEmpiloyee extends ColaEmployee{

int hS;
int hN; public HourlyEmpiloyee() {
super(); } public HourlyEmpiloyee(String name, int month, int hS, int hN) {
super(name, month);
this.hS = hS;
this.hN = hN;
} public double getSalary(int month) {
if (super.getMonth() > month) {
if (hN> 160) {
return hS * 160 + hS * (hN - 160) * 1.5 + 100;
} else {
return hS * hN + 100; }
} else {
if (hN > 160) {
return hS * 160 + hS * (hN - 160) * 1.5;
} else {
return hS * hN; }
}
}}
package gc;

public class SalesEmployee extends ColaEmployee{
int monthSales;
double tich; public SalesEmployee() {
super(); } public SalesEmployee(String name, int month, int monthSales, double ticheng) {
super(name, month);
this.monthSales = monthSales;
this.tich = ticheng;
} public double getSalary(int month) {
if (super.getMonth() == month) {
return monthSales * tich + 100;
} else {
return monthSales * tich;
}
} }
package gc;

public class Company {

     public void getSalary(ColaEmployee a, int month) {
System.out.println(a.name + "在" + month + "月的工资为" + a.getSalary(month));
} }
package gc;

public class test {

        public static void main(String[] args) {
// TODO Auto-generated method stub
ColaEmployee[] c = {
new SalariedEmployee("gfh", 4, 2356),
new HourlyEmpiloyee("jug", 2, 10, 450),
new SalesEmployee("grhu", 3, 59874, 0.5)
};
for (int i = 0; i < c.length; i++) {
new Company().getSalary(c[i], 12);
} } }

Java第十五周作业的更多相关文章

  1. g第十四周,十五周作业

    1.数组中偶数的和 #include <stdio.h> int main(){ ; ]; ;i<=;i++) { scanf("%d ",&a[i]); ...

  2. Java ee第五周作业

    Applet: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同. 含有Applet的网页的HTML文件 ...

  3. python第八十四天---十五周作业

    后台管理页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. C语言——第十四、十五周作业

    题目 题目一:交换最小值和最大值 1.实验代码 #include<stdio.h> int main() { ; int i , n; int a[N]; int x , y; scanf ...

  5. 20199310《Linux内核原理与分析》第十五周作业 Linux安全实验

    1 补充知识 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭, ...

  6. java第十二周作业

    1.定义一个点类Point, 包含2个成员变量x.y分别表示x和y坐标,2个构造器Point()和Point( intx0,y0),以及一个movePoint (int dx,intdy)方法实现点的 ...

  7. 第十五周博客作业 <西北师范大学| 周安伟>

    第十五周作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求链接https://www.cnblogs.com/nwnu-daizh/p/10946673 ...

  8. 201771010134杨其菊《面向对象程序设计(java)》第十五周学习

    第十五周学习总结 第一部分:理论知识 JAR文件: 应用程序首选项存储: Java Web Start JAR文件: 1.Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar ...

  9. 2017面向对象程序设计(Java)第十五周学习总结

    上周,老师要求同学们自学应用程序部署,并布置了相关的实验任务.此次实验的目的是掌握Java应用程序的打包操作:了解应用程序存储配置信息的两种方法: 了解Applet小应用程序的开发及应用方法:掌握基于 ...

随机推荐

  1. 8元电调调参教程(使用Arduino Uno)| BLHeli无刷电调的固件烧写及调参

    前言 淘某上有款8元电调,性价比很高,但是需要简单设置一下 1.材料清单 (1)Arduino UNO开发板 (2)BLHeliSuite 16.7.14.9.0.1 调参软件及固件已上传Gitee: ...

  2. OGNL(Object-Graph Navigation Language)使用

    OGNL表达式:https://www.jianshu.com/p/6bc6752d11f4 Apache OGNL:http://commons.apache.org/proper/commons- ...

  3. mysql的cpu飙升原因及处理

     Mysql 批量杀死进程 正常情况下kill id,即可,但是有时候某一异常连接特别多的时候如此操作会让人抓狂,下面记录下小方法: use information_schema; select co ...

  4. yum下载安装mysql服务

    1.下载mysql源码 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 2.安装mysql源 yum ...

  5. 4.RDD操作

    目录 一. RDD创建 从本地文件系统中加载数据创建RDD 从HDFS加载数据创建RDD 通过并行集合(列表)创建RDD 二. RDD操作 转换操作 filter(func) map(func) fl ...

  6. 比较数字范围:判断number存在(minRange ~ maxRange)范围中

    一.使用场景 当需要比较范围时 如: 这种情况,如果要写三个表达式会很长,这时候就可以用这个工具类进行比较 number:用户输入(长,宽,高) minRange: 0.0 maxRange:33 二 ...

  7. 判断集合中存在String字符串 或 判断集合中不存在String字符串

    一.使用场景 用于集合中有多个相近的字符,无法使用包含判断 如: 这里如果我想判断以上集合中是否包含"信封件-DE"就会被"信封件-DE2"影响到 毕竟:&qu ...

  8. element el-tree、el-table组件加载数据前闪现 暂无数据 清除

    相信很多人在使用element  el-tree.el-table组件加载数据前会显示一个" 暂无数据 ",体验很不友好,有没有办法处理不显示呢?答案是:有的.废话不多说直接上代码 ...

  9. window onerror 各浏览器下表现总结

    window onerror 各浏览器下表现总结 做前端错误上报,必然离不开window onerror,但window onerror在不同设备上表现并不一致,浏览器为避免信息泄露,在一些情况下并不 ...

  10. canvas菜鸟基于小程序实现图案在线定制功能

    前言 最近收到一个这样的需求,要求做一个基于 vue 和 element-ui 的通用后台框架页,具体要求如下: 要求通用性高,需要在后期四十多个子项目中使用,所以大部分地方都做成可配置的. 要求做成 ...