java定义职工类Employee,属性包含姓名name和月工资monthWage,方法包含年工资计算的方法1.getAnnualWage方法2.职工类包含两个子类,分别定义普通员工类Ordinary和经理类Manager.普通员工类包含work方法和getAnnualWage方法,其中getAnnualWage方法重写父类的年工资计算的方法 2.经理类包含getAnnualWage方法,重写父类的年工资计算的方法 3.定义测试类包含main方法 ,showAnnualWage方法获取员工的年工资
时间: 2024-03-13 21:46:58 浏览: 152
好的,你的问题是如何定义职工类Employee,包含两个子类Ordinary和Manager,以及如何实现它们的年工资计算方法,以及如何测试获取员工的年工资?
首先,我们需要定义职工类Employee,代码如下:
```java
public class Employee {
private String name; // 姓名
private double monthWage; // 月工资
public Employee(String name, double monthWage) {
this.name = name;
this.monthWage = monthWage;
}
public double getMonthWage() {
return monthWage;
}
// 年工资计算方法
public double getAnnualWage() {
return monthWage * 12;
}
}
```
然后,我们需要定义两个子类Ordinary和Manager,它们分别继承职工类Employee,并实现自己的方法。普通员工类包含work方法和getAnnualWage方法,其中getAnnualWage方法重写父类的年工资计算的方法;经理类包含getAnnualWage方法,重写父类的年工资计算的方法。代码如下:
```java
public class Ordinary extends Employee {
public Ordinary(String name, double monthWage) {
super(name, monthWage);
}
// 普通员工的工作
public void work() {
System.out.println("我是普通员工,我的工作是...");
}
// 重写父类的年工资计算方法
@Override
public double getAnnualWage() {
return getMonthWage() * 12 + 10000;
}
}
public class Manager extends Employee {
public Manager(String name, double monthWage) {
super(name, monthWage);
}
// 经理的工作
public void work() {
System.out.println("我是经理,我的工作是...");
}
// 重写父类的年工资计算方法
@Override
public double getAnnualWage() {
return getMonthWage() * 12 + 50000;
}
}
```
最后,我们定义测试类Test,包含main方法,以及showAnnualWage方法获取员工的年工资。代码如下:
```java
public class Test {
public static void main(String[] args) {
Employee ordinary = new Ordinary("张三", 5000);
Employee manager = new Manager("李四", 10000);
showAnnualWage(ordinary);
showAnnualWage(manager);
}
// 获取员工的年工资
public static void showAnnualWage(Employee employee) {
System.out.println(employee.getAnnualWage());
}
}
```
在测试程序中,我们创建了一个普通员工和一个经理,分别计算他们的年工资,并使用showAnnualWage方法输出。
阅读全文