/* 假如我们在开发一个系统时需要对程序员类进行设计,程序员包含三个属性:姓名 工号 以及工资。
- 经理 ,除了含有程序员的属性外,另外还有一个奖金属性。
- 请使用继承的思想设计出程序员类和经理类。要求类中提供必要的方法进行属性访问 */
public class fr {
public static void main(String[] args) {
Coder c=new Coder();
c.setName("Likefr");
c.setId("0007");
c.setSalary(5000);
c.work();
manager m=new manager("项目经理","1100",10000,5000);
m.work();
}
}
abstract class Employee{
private String name; //姓名
private String id; //工号
private double salary; //工资
public Employee() {}; //空参
public Employee(String name,String id,double salary) { //有参
this.name=name;
this.salary=salary;
this.id=id;
}
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setSalary(double salary) {
this.salary = salary;
}
public double getSalary() {
return salary;
}
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public abstract void work();
}
class Coder extends Employee{
public Coder(){};
public Coder(String name,String id, double salary) {
super(name,id,salary);
}
public void work() {
System.out.println("我的姓名是:"+this.getName());
System.out.println("我的工号是:"+this.getId());
System.out.println("我的工资是:"+this.getSalary());
}
}
class manager extends Employee{
private int bonus;
public manager() {}
public manager(String name,String id,double salary,int bonus) {
super(name,id,salary);
this.bonus=bonus;
}
@Override
public void work() {
System.out.println("我的姓名是:"+this.getName());
System.out.println("我的工号是:"+this.getId());
System.out.println("我的工资是:"+this.getSalary());
System.out.println("我的奖金是:"+this.bonus);
}
}
运行结果:
我的姓名是:Likefr
我的工号是:0007
我的工资是:5000.0
我的姓名是:项目经理
我的工号是:1100
我的工资是:10000.0
我的奖金是:5000