设计3个类,分别是学生类Student,本科生类Undergraduate,研究生类Postgraduate,其中Student类是一个父类,它包含一个学生的基本信息如姓名、平均成绩等。类Undergraduate和Postgraduate是其子类,分别设计子类的特有属性及其输出所有属性的toString()方法。设计一个学生数组,既能放本科生对象又能放研究生对象,使用多态的方式输出数组中各个对象的所有属性。(5分)
时间: 2023-02-28 17:01:28 浏览: 202
以下是一个简单的实现:
```
class Student {
private String name;
private double avgScore;
public Student(String name, double avgScore) {
this.name = name;
this.avgScore = avgScore;
}
public String toString() {
return "Name: " + name + ", Average Score: " + avgScore;
}
}
class Undergraduate extends Student {
private int scholarship;
public Undergraduate(String name, double avgScore, int scholarship) {
super(name, avgScore);
this.scholarship = scholarship;
}
public String toString() {
return super.toString() + ", Scholarship: " + scholarship;
}
}
class Postgraduate extends Student {
private String researchArea;
public Postgraduate(String name, double avgScore, String researchArea) {
super(name, avgScore);
this.researchArea = researchArea;
}
public String toString() {
return super.toString() + ", Research Area: " + researchArea;
}
}
public class Main {
public static void main(String[] args) {
Student[] students = new Student[3];
students[0] = new Undergraduate("John", 90.0, 5000);
students[1] = new Postgraduate("Jane", 85.0, "Artificial Intelligence");
students[2] = new Undergraduate("Jim", 80.0, 6000);
for (Student s : students) {
System.out.println(s.toString());
}
}
}
```
输出:
```
Name: John, Average Score: 90.0, Scholarship: 5000
Name: Jane, Average Score: 85.0, Research Area: Artificial Intelligence
Name: Jim, Average Score: 80.0, Scholarship: 6000
```
阅读全文