面向对象_抽象类练习员工案例

来源:互联网 发布:cg用什么软件 编辑:程序博客网 时间:2024/05/19 10:39
/*假如我们在开发一个系统时需要对员类进行设计,员工包含3个属性:姓名、工号以级工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。分析:从具体到抽象普通员工类:成员变量:姓名、工号、工资构造方法:无参、带参成员方法:工作经理类:成员变量:姓名、工号、工资、奖金构造方法:无参、带参成员方法:工作员工类:成员变量:姓名、工号、工资构造方法:无参、带参成员方法:工作实现:从抽象到具体员工类:成员变量:姓名、工号、工资构造方法:无参、带参成员方法:工作(抽象)普通员工类:自继承员工类重写工作类经理类:成员变量:奖金自继承员工类重写工作类*///定义员工类abstract class Employee{//姓名、工号、工资private String name;private String id;private int salary;public Employee(){}public Employee(String name,String id,int salary){this.name = name;this.id = id;this.salary = salary;}public String getName(){return name;}public void setName(String name){this.name = name;}public String getId(){return id;}public void setId(String id){this.id = id;}public int getSalary(){return salary;}public void setSalary(int salary){this.salary = salary;}//工作public abstract void work();}//定义普通员工类class Programmer extends Employee{public Programmer(){}public Programmer(String name,String id,int salary){super(name,id,salary);}public void work(){System.out.println("按照需求写代码");}}//定义经理类class Manager extends Employee{//奖金private int money;//bonus奖金 public Manager(){}public Manager(String name,String id,int salary,int money){super(name,id,salary);this.money = money;}public void work(){System.out.println("跟客户谈需求");}public int getMoney(){return money;}public void setMoney(int money){this.money = money;}}class AbstractTest4{public static void main(String[] args){//测试普通员工类//方式1(多态)Employee emp = new Programmer();emp.setName("刘德华");emp.setId("bdqn001");emp.setSalary(18000);System.out.println(emp.getName()+"---"+emp.getId()+"---"+emp.getSalary());emp.work();System.out.println("---------------------------------");//方式2(多态)emp = new Programmer("张晶银","bdqn002",21000);System.out.println(emp.getName()+"---"+emp.getId()+"---"+emp.getSalary());emp.work();System.out.println("---------------------------------");//测试经理类/*emp = new Manager();emp.setName("刘刚");emp.setId("bdqn003");emp.setSalary(8000);emp.setMoney(2000);*///由于子类有特有的内容,所以就用子类来测试Manager m = new Manager();m.setName("刘刚");m.setId("bdqn003");m.setSalary(8000);m.setMoney(2000);System.out.println(m.getName()+"---"+m.getId()+"---"+m.getSalary()+"---"+m.getMoney());m.work();System.out.println("---------------------------------");//通过构造方法赋值m = new Manager("刘刚","bdqn003",8000,2000);System.out.println(m.getName()+"---"+m.getId()+"---"+m.getSalary()+"---"+m.getMoney());m.work();System.out.println("---------------------------------");}}

0 0