用JAVA语言写一个代码,要求1.定义职工类Employee,其中 属性包含姓名:name和月工资:monthWage, 方法包含年工资计算的方法:getAnnualWage方法。 2.职工类包含两个子类,分别定义普通员工类:Ordinary和经理类:Manager: (1)普通员工类包含work方法和getAnnualWage方法,其中getAnnualWage方法重写父类的年工资计算的方法 (2)经理类包含getAnnualWage方法,重写父类的年工资计算的方法 3.定义测试类,包含: (1)main方法; (2)showAnnualWage方法:用来获取任何员工对象的年工资,并通过main方法调用。
时间: 2024-02-01 12:16:57 浏览: 141
以下是Java语言的代码实现:
```
// 定义职工类
class Employee {
private String name; // 姓名
private double monthWage; // 月工资
public Employee(String name, double monthWage) {
this.name = name;
this.monthWage = monthWage;
}
public double getAnnualWage() {
return monthWage * 12; // 计算年工资
}
}
// 定义普通员工类
class Ordinary extends Employee {
public Ordinary(String name, double monthWage) {
super(name, monthWage);
}
public void work() {
System.out.println("我是普通员工,正在工作...");
}
@Override
public double getAnnualWage() {
return super.getAnnualWage() + 10000; // 年终奖10000元
}
}
// 定义经理类
class Manager extends Employee {
public Manager(String name, double monthWage) {
super(name, monthWage);
}
@Override
public double getAnnualWage() {
return super.getAnnualWage() * 1.2; // 年终奖按照月工资的1.2倍计算
}
}
// 定义测试类
public class Test {
public static void main(String[] args) {
Employee employee1 = new Ordinary("张三", 5000);
Employee employee2 = new Manager("李四", 8000);
showAnnualWage(employee1);
showAnnualWage(employee2);
}
public static void showAnnualWage(Employee employee) {
System.out.println(employee.getAnnualWage());
}
}
```
在测试类中,我们创建了一个普通员工对象和一个经理对象,并通过showAnnualWage方法分别获取了它们的年工资。在其中,我们可以发现,普通员工的年终奖是10000元,而经理的年终奖是按照月工资的1.2倍计算。
阅读全文