java案例4-7 经理与员工工资案例

案例描述:

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


代码实现

//父类:公司人员类
abstract class person {
    public String name;     //姓名
    public String address;  //地址
    public person(String name, String address){
        this.name=name;
        this.address=address;
    }

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

    public String getName() {
        return name;
    }

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

    public String getAddress() {
        return address;
    }

    public void add(){

    }
}

//子类:员工类
class employee extends person {
        public String id;
        public double salary;
        public int age;

    public employee(String name, String address,String id,double salary,int age) {
        super(name, address);
        this.id=id;
        this.salary =salary;
        this.age=age;
    }

    public String getId() {
        return id;
    }

    public double getSalary() {
        return salary;
    }

    public int getAge() {
        return age;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

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

    public void add(){
        salary*=1.1;
    }

    public String getID() {
        return id;
    }
}
//子类:经理类
class manager extends employee{

    public String rank;
    public manager(String name, String address, String id, double salary, int age,String rank) {
        super(name, address, id, salary, age);
        this.rank=rank;
    }

    public String getRank() {
        return rank;
    }

    public void setRank(String rank) {
        this.rank = rank;
    }
    public void add(){
        salary*=1.2;
    }

}

public class Ex4_7 {
    public static void main(String[] args) {
        employee worker = new employee("张三", "郑州", "1001", 4000.0, 2);
        manager manager1 = new manager("李四", "郑州", "1122", 8000.0, 5, "经理");
        manager manager2 = new manager("王五", "郑州", "1100", 10000.0, 4, "高级经理");
        print(worker);
        print(manager1);
        print(manager2);
    }
    public static void print(employee a){
        System.out.println("----------------------普通员工信息表---------------------");
        System.out.println("|姓名|\t\t"+"|工号|\t\t"+"|工资|\t\t"+"|工龄|\t\t"+"|地址|");
        System.out.println(a.getName() + "\t\t\t"+a.getID()+"\t\t"+a.getSalary()+"\t\t "+a.getAge()+"\t\t\t"+a.getAddress());
        a.add();
        System.out.println("-------------------------------------------------------");
        System.out.println("由于"+a.getName()+ "在公司辛勤工作,因此公司决定鼓励,涨薪为:" + a.getSalary());
        System.out.println();
    }
    public static void print(manager a){
        System.out.println("----------------------经理阶层信息表----------------------------");
        System.out.println("|姓名|  \t"+"|工号|  \t"+"|职称|  \t"+"|工资|  \t"+"|工龄|  \t"+"|地址|");
        System.out.println(a.getName() + "   \t"+a.getID()+" \t"+a.getRank()+" \t"+a.getSalary()+"\t "+a.getAge()+"   \t"+a.getAddress());
        a.add();
        System.out.println("-------------------------------------------------------------");
        System.out.println("由于"+a.getName()+ "在公司辛勤工作,因此公司决定鼓励,涨薪为:" + a.getSalary());
        System.out.println();
    }
}

运行结果

 

  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值