定义员工类
程序员类:属性(姓名、工号、工资、奖金),行为(工作,软件开发)
测试工程师:属性(姓名、工号、工资),行为(工作,软件测试)
项目经理类:属性(姓名、工号、工资、奖金),行为(工作,控制进度)
public abstract class User {
private String name;
private String id;
private double salary;
public User() {
}
public User(String name, String id, double 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 double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public abstract void work();
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", id='" + id + '\'' +
", salary=" + salary +
'}';
}
}
class Programmer extends User{
private double bonus;
public Programmer() {
}
public Programmer(double bonus) {
this.bonus = bonus;
}
public Programmer(String name, String id, double salary, double bonus) {
super(name, id, salary);
this.bonus = bonus;
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
@Override
public void work() {
System.out.println("软件开发");
}
@Override
public String toString() {
return super.toString()+bonus;
}
}
class Engineer extends User{
public Engineer() {
}
public Engineer(String name, String id, double salary) {
super(name, id, salary);
}
@Override
public void work() {
System.out.println("测试工程师");
}
}
class Manager extends Programmer{
public Manager() {
}
public Manager(double bonus) {
super(bonus);
}
public Manager(String name, String id, double salary, double bonus) {
super(name, id, salary, bonus);
}
@Override
public void work() {
System.out.println("控制进度");
}
}
class TestUser{
public static void main(String[] args) {
User programmer = new Programmer("张三","101",7000,2000);
System.out.println(programmer.toString());
programmer.work();
User engineer = new Engineer("lisi","102",6000);
System.out.println(engineer.toString());
engineer.work();
User manager = new Manager("王五","103",6000,1500);
System.out.println( manager.toString());
manager.work();
}
}