【经理与员工工资案例】
1、案例描述
某公司的人员分为员工和经理两种,但经理也属于员工中的一种,公司的人员都有自己的姓名和地址,员工和经理都有自己的工号、工资、工龄等属性,但经理与员工的不同之处在于,经理有自己在公司对应的级别。假设每次给员工涨一次工资能涨10%,经理能涨20%。本案例要求利用多态实现给员工和经理涨工资。
2、案例目的
(1)学会利用继承性实现“经理与员工工资”案例的实现思路
(2)完成“经理与员工工资”案例代码的编写、编译及运行
(3)掌握多态的概念及其应用
(4)掌握方法的重载的概念及其应用
3、运行结果
4、代码实现
package cn.itcast.example;
import java.text.Normalizer;
class Person{
private String name = "";
private String address = "";
//定义构造方法
public Person(String name,String address) {
this.name = name;
this.address = address;
}
}
abstract class Employee extends Person{
private String ID = "";
private double wage = 0;
private int age = 0;
public Employee(String name,String address,String ID,double wage,int age) {
super(name, address);
this.ID = ID;
this.wage = wage;
this.age = age;
}
//定义抽象方法
public abstract void add(String position);
//设置get/set方法
public double getWage() {
return wage;
}
public void setWage(double wage) {
this.wage = wage;
}
}
class Manager extends Employee{
private String level = "";
public Manager(String name,String address,String ID,double wage,int age,String level) {
super(name, address, ID, wage, age);
this.level = level;
}
//实现抽象方法
public void add() {
double wage = super.getWage();
super.setWage(wage*1.1);
}
public void add(String position) {
double wage = super.getWage();
super.setWage(wage*1.2);
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
}
public class example {
public static void main (String[] arge) {
Manager normal = new Manager("wsl", "jit", "12", 1000, 2, "1");
Manager manager = new Manager("ctl", "jitt", "123", 10000, 10, "0");
normal.add();
manager.add(manager.getLevel());
System.out.println("normal wage is: "+normal.getWage());
System.out.println("manager wage is:"+manager.getWage());
}
}