问题:假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
想法:先写出员工类以及定义员工类的三个属性:姓名、工号、薪资。私有后定义函数(),再调用this关键字。然后用work方法输出打印员工的这三个属性。(注意合计时,需要工资加奖金,因此还需要get方法return返回工资)
而经理类直接extends继承员工类,继承员工的3个属性,同时额外定义奖金属性;通过work除了打印奖金,还需要打印合计(工资+奖金),所以调get方法,输出加上getSalary()+bonus
而主函数就定义,new一个员工和一个经理的具体属性,再调用work方法输出。
个人参考例子如下:
/*
假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性:
姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。
请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
*/
class Staff
{
private String id;
private String name;
private double salary;
public Staff(String id,String name,double salary)
{
super();
this.id=id;
this.name=name;
this.salary=salary;
}
//用一个get方法调值,然后就可以用合计了
public double getSalary()
{
return salary;
}
public void work()
{
System.out.println("工号:"+id+";姓名:"+name+";薪资:"+salary);
}
}
class Manager extends Staff
{
public Manager(String id,String name,double salary)
{
super(id,name,salary);
}
private double bonus;//奖金
public void setBonus(double bonus)
{
this.bonus=bonus;
}
public void work()
{
super.work();
System.out.print("奖金:"+bonus+";合计:"+(getSalary()+bonus));
}
}
class Test_24
{
public static void main(String[] args)
{
Staff s1=new Staff("001","张三",4000);
s1.work();
Manager s2=new Manager("002","王五",5000);
s2.setBonus(200);
s2.work();
}
}