使用Java继承的特性实现员工工资管理

父类:

 1 /**
 2  * 员工总类
 3  * @author Administrator
 4  *
 5  */
 6 public class Employee {
 7
 8     private String name;//员工名字
 9     private int birthMonth;//员工的生日月份
10     public String getName() {
11         return name;
12     }
13     public void setName(String name) {
14         this.name = name;
15     }
16     public int getBirthMonth() {
17         return birthMonth;
18     }
19     public void setBirthMonth(int birthMonth) {
20         this.birthMonth = birthMonth;
21     }
22
23     /*
24      * 根据参数月份来确定工资,如果该月员工过生日
25      */
26     public double getSalary(int month){
27         return 0;
28     }
29
30
31 }

拿固定工资的员工类:

 1 /**
 2  * 拿固定工资的员工
 3  * @author Administrator
 4  *
 5  */
 6 public class SalariedEmployee extends Employee {
 7
 8     private double salary;//月薪
 9
10     public double getSalary() {
11         return salary;
12     }
13
14     public void setSalary(double salary) {
15         this.salary = salary;
16     }
17
18     @Override
19     public double getSalary(int month) {
20         double temp = 0 ;
21         if(this.getBirthMonth() == month){
22             temp += 100;
23         }
24
25         return temp+salary;
26     }
27
28
29
30 }

按小时拿工资的员工类

 1 /**
 2  * 按小时拿工资的员工
 3  * @author Administrator
 4  *
 5  */
 6 public class HourlyEmployee extends Employee {
 7
 8     private double hourSalary;//每小时的工资
 9     private double hours;//每月工作的小时数
10     public double getHourSalary() {
11         return hourSalary;
12     }
13     public void setHourSalary(double hourSalary) {
14         this.hourSalary = hourSalary;
15     }
16     public double getHours() {
17         return hours;
18     }
19     public void setHours(double hours) {
20         this.hours = hours;
21     }
22
23     public double hSalary(){
24         if(hours <= 160){
25             return hours*hourSalary;
26         }else{
27             return 160*hourSalary+(hours-160)*hourSalary*1.5;
28         }
29     }
30
31     @Override
32     public double getSalary(int month) {
33         double temp = 0 ;
34         if(this.getBirthMonth() == month){
35             temp += 100;
36         }
37
38         return temp+this.hSalary();
39     }
40
41 }
时间: 2024-10-06 05:49:09

使用Java继承的特性实现员工工资管理的相关文章

java 继承之间方法的时候(计算出经理与员工之间公司差别)

自己检讨下:刚开始看这个的时候,我觉得挺简单的,但是让我自己写的时候我确实不会写,最大的缺点就是好高骛远,偷懒,基础不会就想着上天. 希望别的朋友别要有这样的想法,再简单的例子,如果你不亲自敲下,在揣摩下,你敢说日后让你写这样的代码,你能写出来吗,我不是天才,但我坚信勤奋可以造就天才. 首先:分析下员工与经理之间的相同点,就是员工与经理都有姓名,工资和日期(其实我感觉这个日期不必要有)这个三个属性,经理比员工多的就是经理又项目奖金 然后可以把相同的信息抽出来,实例一个Employee类 ,这个类

【转】java提高篇(二)-----理解java的三大特性之继承

[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所

黑马程序猿——JAVA面向对象的特性:封装,继承,多态

                                       - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一.java面向对象的特性.封装.继承.多态         封装 封装是对象和类概念的主要特性. 封装.也就是把客观事物封装成抽象的类.而且类能够把自己的数据和方法仅仅让可信的类或者对象操作,对不可信的进行信息隐藏. 继承 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承

java面向对象三大特性之继承

通过重用已经测试并验证通过的代码,怎样才减少开发工作,所有开发团队都在为一问题而努力.一个久经考验的方法是通过有效地使用Java继承优化应用程序开发. 继承的从某种意义上讲,继承的短暂美就如同宇宙中所有事与其它事情都存在一种特殊的关系. Java继承 Java继承是面向对象的最显著的一个特征.继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力. Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但

黑马程序员——JAVA面向对象的特性:封装,继承,多态

                                       - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一.java面向对象的特性,封装.继承.多态         封装 封装是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 继承 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是

Java提高篇之理解java的三大特性——继承

在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一-继承. 继承 在讲解之前我们先看一个例子,该例子是前篇博文(java提高篇之理解java的三大特性--封装)的. 从这里我们可以看出,Wife.Husband

探讨 java 的三大特性之一:继承

先回顾一下, Java 面向对象的三大特性包括:封装.继承.多态. PS:还有一些说四大特性,加了一个抽象 封装:将属性私有化,对外提供访问属性的方法,也可以不提供方法,这个特性叫做封装. 继承: 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有. 子类可以拥有自己属性和方法,即子类可以对父类进行扩展. 子类可以用自己的方式实现父类的方法 多态:多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确

Java 继承和多态

                                                    Java  继承和多态 Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 生活中的继承: 兔子和羊属于食草动物类,狮子和豹属于食肉动物类. 食草动物和食肉动物又是属于动物类. 所以继承需要符合的关系是:is-a,父