[案例4-7]经理与员工工资案例

本文通过一个Java案例展示了如何利用多态性来为员工和经理实现不同的涨薪机制。员工每次涨薪10,经理涨薪幅度为20%。案例中创建了Person父类,Employee抽象类以及Manager子类,详细定义了各个类的属性和方法,包括涨薪方法的实现。在测试类中,对员工和经理对象进行了涨薪操作并输出结果。
摘要由CSDN通过智能技术生成

案例描述:

某公司的人员分为员工和经理两种,但经理也属于员工中的一种,公司的人员都有自己的姓名和地址,员工和经理都有自己的工号、工资、工龄等属性,但经理不同员工的是,经理有自己在公司对应的级别。假设每次给员工涨工资一次能涨10,经理能涨20%。本案例要求利用多态实现给员工和经理涨工资。

运行结果:

代码如下:

创建父类:

/**
 * 2022/3/23
 */
public class Person {
    private String name ;    // 名字
    private String address;  // 地址

    public Person(String name, String address) {
        this.name = name;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

创建抽象类:


/**
 * 2022/3/23
 */
public abstract class Employee extends Person{
    private String ID ;   // 工号
    private double wages ;   // 工资
    private int age ;   // 工龄

    public Employee(String name, String address, String ID, double wages, int age) {
        super(name, address);   // 调用父类中的元素
        this.ID = ID;
        this.wages = wages;
        this.age = age;
    }
    public abstract void add(String position);   // 涨薪方法

    public double getWages() {
        return wages;
    }

    public void setWages(double wages) {
        this.wages = wages;
    }

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

创建子类继承抽象类:

/**
 * 2022/3/23
 */
public class Manager extends Employee{
    private String level;  // 级别

    public Manager(String name, String address, String ID, double wages, int age, String level) {
        super(name, address, ID, wages, age);
        this.level = level;
    }

    public void add() {
        double d = super.getWages();
        super.setWages(d*1.1);  // 涨薪10%
    }
    @Override
    public void add(String position){ // 实现抽象方法
        double d = super.getWages();
        super.setWages(d*1.2);  // 涨薪20%
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }
}

创建测试类:

/**
 * 2022/3/23
 */
public class Demo {
    public static void main(String[] args) {
        Manager yuanGong = new Manager("小王","公司","100",5000,5 ,"员工");
        Manager jingLi = new Manager("小张","公司","001",10000,10,"经理");

        yuanGong.add();  // 调用方法
        jingLi.add(jingLi.getLevel());  // 调用方法,放入级别

        zhang(yuanGong);
        System.out.println("------------");
        zhang(jingLi);
    }
    public static void zhang(Manager z){
        System.out.println(z.getName() + "在公司担任的职位是" +z.getLevel() +",工号为:" +z.getID());
        System.out.println("工龄" + z.getAge() + "年,在公司辛勤工作,公司决定鼓励,涨薪为:" + z.getWages());
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈努力学JAVA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值