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. CF1485X Codeforces Round #701

    D Multiples and Power Differences (构造) 题目大意:给一个n*m的矩阵a,a[i][j]在1到16之间.现在要构造矩阵b,需要满足如下条件: 1.b[i][j]在1 ...

  2. EasyExcel完成excel文件的导入导出

    简介 常见的Excel分析框架有Apache poi 和EasyExcel, poi在另一篇已经介绍过了,详情可以看[https://www.cnblogs.com/jasmine-e/p/16064 ...

  3. java面向对象思想之继承

    一.什么是继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为.可以联系生活进行理解,相当于父亲和儿子的关系.父亲有的属 ...

  4. C++_STL_all_of

    all_of 功能描述 如果在[first,last)范围内的数组进行判断, 如果pred返回true返回true 否则返回false 等同于 template<class InputItera ...

  5. 火花思维java

    面试过程: 问的问题比较广,涉及java基础与互联网中间件,数据库很多知识,面试官态度非常友好,对于错的回答也做出来相应解答 面试官问的面试题: 1.redis如何保证数据一致性2.mysql的索引机 ...

  6. springboot的核心配置文件

    一.springboot主要配置文件种类 1.bootstrap (.yml或.properties) 2.application(.yml或.properties) 二.bootstrap与appl ...

  7. outlook配置osc地址(删除原账户重新配置)

    方法二:使用手动配置邮箱(适用于标准化未入域机器) Step1:在"开始"菜单找到 "控制面板"并打开(或按键盘上的"Win"+" ...

  8. 什么是Netflix Feign?它的优点是什么?

    Feign是受到Retrofit,JAXRS-2.0和WebSocket启发的java客户端联编程序.Feign的第一个目标是将约束分母的复杂性统一到http apis,而不考虑其稳定性.在emplo ...

  9. Spring Boot 的配置文件有哪几种格式?它们有什么区别?

    .properties 和 .yml,它们的区别主要是书写格式不同.    1).properties    app.user.name = javastack    2).yml    app:   ...

  10. Java堆空间的划分:新生代、老年代

    参考链接:Java堆空间的划分:新生代.老年代