雇员 Employee示例,对需求进行数据建模。
需求:公司中有程序员和项目经理,其中:
程序员(Programmer)有姓名(name),工号(workNumber),薪水(salary),工作内容(work)
项目经理(ProjectManager)除了有姓名,工号,薪水,还有奖金(bonus),工作内容(work)
abstract class Employee
{
private String name;
private int workNumber;
private double salary;
public Employee(String name,int workNumber,double salary){
this.name=name;
this.workNumber=workNumber;
this.salary=salary;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getWorkNumber(){
return workNumber;
}
public void setWorkNumber(int workNumber){
this.workNumber=workNumber;
}
public double getSalary(){
return salary;
}
public void setSalary(double salary){
this.salary=salary;
}
public abstract void work();
}
class Programmer extends Employee
{
public Programmer(String name,int workNumber,double salary){
super(name,workNumber,salary);
}
public void work(){
System.out.println("工作内容为编程....");
}
void show(){
System.out.println("我叫"+super.getName()+","+"工号是"+super.getWorkNumber()+","+"薪水为"+super.getSalary());
}
}
class ProjectManager extends Employee
{
private double bonus;
public ProjectManager(String name,int workNumber,double salary,double bonus){
super(name,workNumber,salary);
this.bonus=bonus;
}
public double getBonus(){
return bonus;
}
public void setBonus(double bonus){
this.bonus=bonus;
}
public void work(){
System.out.println("工作内容为管理....");
}
void show(){
System.out.println("我叫"+super.getName()+","+"工号是"+super.getWorkNumber()+","+"薪水为"+super.getSalary()+","+"奖金为"+bonus);
}
}
public class Text2
{
public static void main(String[] args)
{
Programmer p=new Programmer("张三",123456,5000);
p.show();
p.work();
ProjectManager s=new ProjectManager("汪芜",123789,7000,1000);
s.show();
s.work();
}
}
运行结果: