使用Java,设计一个人员类(person),其中包含一个方法pay,代表人员的工作支出。 再从person类中派生出教师类和大学生类,其中: 教师的工资支出为:基本工资+授课时数x30; 大学生的工资支出为:奖学金支出; 要求:设计程序实现多态性。
时间: 2024-10-18 12:20:08 浏览: 37
在Java中,我们可以创建一个名为`Person`的基类,然后派生出`Teacher`和`Student`两个子类,以此来实现多态性。首先,我们定义`Person`类,并在其中添加一个`pay`方法,这个方法是一个抽象方法,因为我们需要它的具体实现由子类提供。
```java
// Person类
public abstract class Person {
protected double baseSalary; // 基本工资
public abstract double pay(); // 抽象方法,工作支出
// 其他可能的方法和属性...
}
```
接着,我们分别为`Teacher`和`Student`这两个子类实现`pay`方法:
```java
// Teacher类
public class Teacher extends Person {
private int teachingHours;
public Teacher(double baseSalary, int teachingHours) {
this.baseSalary = baseSalary;
this.teachingHours = teachingHours;
}
@Override
public double pay() {
return baseSalary + teachingHours * 30; // 教师的工资支出计算
}
}
// Student类
public class Student extends Person {
private double scholarship;
public Student(double scholarship) {
this.scholarship = scholarship;
}
@Override
public double pay() {
return scholarship; // 大学生的工资支出仅依赖于奖学金
}
}
```
现在你可以创建`Teacher`和`Student`的对象,并通过`Person`类型的引用调用`pay()`方法,这体现了多态性:
```java
Person teacher = new Teacher(5000, 20); // 创建教师实例
Person student = new Student(3000); // 创建学生实例
System.out.println("Teacher's salary: " + teacher.pay()); // 输出教师的工资
System.out.println("Student's salary: " + student.pay()); // 输出学生的奖学金支出
```
阅读全文