编写程序:某学校教师的工资=基本工资+课时补贴。教授的基本工资为5000元,每学时补贴70元;副教授的基本工资为3500元,每学时补贴60元;讲师的基本工资为2600元,每学时补贴55元。已知某个教师的学时数,计算该教师的每月工资。(要求使用继承实现)
时间: 2024-10-19 12:17:05 浏览: 24
基于ASP+SqlServer某高校工资管理系统的设计与实现(源代码+论文)
首先,我们可以创建一个`Teacher`基类,表示所有教师的通用属性,包括基本工资和一个抽象方法`calculateSalary()`用于计算工资。然后,为教授、副教授和讲师这三个角色分别创建子类,它们继承自`Teacher`,并重写`calculateSalary()`方法以适应各自的课时补贴。
```java
// Teacher基类
public abstract class Teacher {
private int basicSalary;
public Teacher(int basicSalary) {
this.basicSalary = basicSalary;
}
// 抽象方法,用于计算工资
public abstract int calculateSalary(int hours);
// 计算总工资,包含基本工资
public int getTotalSalary(int hours) {
return basicSalary + calculateSalary(hours);
}
}
// Professor子类
public class Professor extends Teacher {
public Professor() {
super(5000); // 教授基本工资
}
@Override
public int calculateSalary(int hours) {
return hours * 70; // 每小时70元补贴
}
}
// AssistantProfessor子类
public class AssistantProfessor extends Teacher {
public AssistantProfessor() {
super(3500); // 副教授基本工资
}
@Override
public int calculateSalary(int hours) {
return hours * 60; // 每小时60元补贴
}
}
// Lecturer子类
public class Lecturer extends Teacher {
public Lecturer() {
super(2600); // 讲师基本工资
}
@Override
public int calculateSalary(int hours) {
return hours * 55; // 每小时55元补贴
}
}
// 使用示例
public static void main(String[] args) {
Teacher teacher = new Professor(); // 假设是教授
int hours = 18; // 假设有18个学时
System.out.println("教师工资:" + teacher.getTotalSalary(hours));
}
```
阅读全文