用java定义职工类Employee,其中 属性包含姓名:name和月工资:monthWage, 方法包含年工资计算的方法:getAnnualWage方法。 2.职工类包含两个子类,分别定义普通员工类:Ordinary和经理类:Manager: (1)普通员工类包含work方法和getAnnualWage方法,其中getAnnualWage方法重写父类的年工资计算的方法 (2)经理类包含getAnnualWage方法,重写父类的年工资计算的方法 3.定义测试类,包含: (1)main方法; (2)showAnnualWage方法:用来获取任何员工对象的年工资,并通过main方法调用。
时间: 2024-02-01 18:16:19 浏览: 85
下面是Java代码实现:
```java
//职工类
public 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;
}
public String getName() {
return name;
}
public double getMonthWage() {
return monthWage;
}
}
//普通员工类
public class Ordinary extends Employee {
public Ordinary(String name, double monthWage) {
super(name, monthWage);
}
public void work() {
System.out.println(getName() + " is working.");
}
@Override
public double getAnnualWage() { //重写计算年工资方法
return getMonthWage() * 12;
}
}
//经理类
public class Manager extends Employee {
public Manager(String name, double monthWage) {
super(name, monthWage);
}
@Override
public double getAnnualWage() { //重写计算年工资方法
return getMonthWage() * 12 + 10000;
}
}
//测试类
public class Test {
public static void main(String[] args) {
Employee ordinary = new Ordinary("Jack", 3000);
Employee manager = new Manager("Tom", 5000);
showAnnualWage(ordinary);
showAnnualWage(manager);
}
public static void showAnnualWage(Employee employee) {
System.out.println(employee.getName() + "'s annual wage is " + employee.getAnnualWage());
}
}
```
在测试类中,我们创建了一个普通员工对象和一个经理对象,并分别调用了showAnnualWage方法来获取他们的年工资。由于普通员工和经理类都继承自职工类,所以我们可以使用多态来调用它们的getAnnualWage方法,实现了代码的重用。
阅读全文