用Java1.定义职工类Employee,其中 属性包含姓名:name和月工资:monthWage, 方法包含年工资计算的方法:getAnnualWage方法。 2.职工类包含两个子类,分别定义普通员工类:Ordinary和经理类:Manager: (1)普通员工类包含work方法和getAnnualWage方法,其中getAnnualWage方法重写父类的年工资计算的方法 (2)经理类包含getAnnualWage方法,重写父类的年工资计算的方法 3.定义测试类,包含: (1)main方法; (2)showAnnualWage方法:用来获取任何员工对象的年工资,并通过main方法调用。
时间: 2024-02-17 19:05:25 浏览: 62
好的,以下是Java代码实现:
```java
// 职工类
class Employee {
protected String name; // 姓名
protected 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(name + "正在认真工作...");
}
// 重写计算年工资方法
@Override
public double getAnnualWage() {
return monthWage * 12 + 10000; // 年终奖10000元
}
}
// 经理类
class Manager extends Employee {
// 构造方法
public Manager(String name, double monthWage) {
super(name, monthWage);
}
// 重写计算年工资方法
@Override
public double getAnnualWage() {
return monthWage * 12 + 50000; // 年终奖50000元
}
}
// 测试类
public class EmployeeTest {
// 获取任何员工对象的年工资方法
public static double showAnnualWage(Employee employee) {
return employee.getAnnualWage();
}
public static void main(String[] args) {
// 创建普通员工对象
Employee o = new Ordinary("张三", 5000);
System.out.println(o.name + "的年工资为:" + showAnnualWage(o)); // 打印年工资
// 创建经理对象
Employee m = new Manager("李四", 20000);
System.out.println(m.name + "的年工资为:" + showAnnualWage(m)); // 打印年工资
}
}
```
运行结果如下:
```
张三的年工资为:61000.0
李四的年工资为:305000.0
```
其中,普通员工的年工资计算方式为:月工资 * 12 + 年终奖 10000 元;经理的年工资计算方式为:月工资 * 12 + 年终奖 50000 元。
阅读全文