/**
请用抽象类体现如下代码:
需求:公司中程序员有姓名,工号,薪水,工作内容。
项目经理除了有姓名,工号,薪水,还有奖金,工作内容。
思路:
员工(程序员、项目经理)
姓名 工号 薪水
工作
程序员 简单的继承
项目经理 简单继承+奖金
//员工抽象类
*/
/**
员工抽象类
*/
abstract class Staff{
/**姓名,工号,薪水*/
private String name;
private String number;
private int money;
//无参
public Staff(){}
//带参
public Staff(String name,String number,int money){
this.name = name;
this.money = money;
this.number = number;
}
/**工作内容*/
public abstract void Work();
/**获取姓名,工号,薪水*/
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setNumber(String number){
this.number = number;
}
public String getNumber(){
return number;
}
public void setMoney(int money){
this.money = money;
}
public int getMoney(){
return money;
}
}
/**
程序员
*/
class Programmer extends Staff{
//无参
public Programmer(){}
/**工作内容*/
public void Work(){
System.out.println("工作内容:每天都在敲代码zzZ...");
}
}
/**
项目经理
*/
class Manager extends Staff{
/**奖金*/
private int award ;
//无参
public Manager(){}
/**工作内容*/
public void Work(){
System.out.println("工作内容:每天都在喝茶zzZ...");
}
/**获取奖金*/
public void setAward(int award){
this.award = award;
}
public int getAward(){
return award;
}
}
/**
测试类
*/
class StaffTest{
public static void main(String[] args){
//测试程序员
//创建对象
Staff s = new Programmer();
s.setName("坂田银时");
s.setNumber("WS007");
s.setMoney(1);
System.out.println("程序员:"+s.getName());
System.out.println("代号:"+s.getNumber());
System.out.println("工资:"+s.getMoney()+"元钱");
s.Work();
System.out.println("----------------------");
//测试项目经理
Staff s1 = new Manager();
Manager m = (Manager)s1;
s1.setName("皮卡丘");
s1.setNumber("WS666");
s1.setMoney(100000000);
System.out.println("项目经理:"+s1.getName());
System.out.println("代号:"+s1.getNumber());
System.out.println("工资:"+s1.getMoney()+"元钱");
s1.Work();
//测试奖金
m.setAward(100000000);
System.out.println("奖金:"+m.getAward()+"元钱");
}
} |
|