设计3个类,分别是学生类Student,本科生类Undergraduate,研究生类Postgraduate,其中Student类是一个父类,它包含一个学生的基本信息如姓名、平均成绩等。类Undergraduate和Postgraduate是其子类,分别设计子类的特有属性及其输出所有属性的toString()方法。设计一个学生数组,既能放本科生对象又能放研究生对象,使用多态的方式输出数组中各个对象的所有属性。(5分)
时间: 2023-02-28 22:40:44 浏览: 115
以下是一种使用 Java 设计上述类的方案:
```
class Student {
private String name;
private double average;
public Student(String name, double average) {
this.name = name;
this.average = average;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getAverage() {
return average;
}
public void setAverage(double average) {
this.average = average;
}
@Override
public String toString() {
return "姓名:" + name + ",平均成绩:" + average;
}
}
class Undergraduate extends Student {
private String major;
public Undergraduate(String name, double average, String major) {
super(name, average);
this.major = major;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
@Override
public String toString() {
return super.toString() + ",专业:" + major;
}
}
class Postgraduate extends Student {
private String researchArea;
public Postgraduate(String name, double average, String researchArea) {
super(name, average);
this.researchArea = researchArea;
}
public String getResearchArea() {
return researchArea;
}
public void setResearchArea(String researchArea) {
this.researchArea = researchArea;
}
@Override
public String toString() {
return super.toString() + ",研究方向:" + researchArea;
}
}
public class Main {
public static void main(String[] args) {
Student[] students = new Student[3];
students[0] = new Undergraduate("张三", 85.0, "计算机科学");
students[1] = new Postgraduate("李四", 90.0, "人工智能");
students[2] = new Undergraduate("王五", 80.0, "数学");
for (Student student : students) {
System.out.println(student.toString());
}
}
}
```
程序的输出结果如下:
```
姓名:张三,平均成绩:85.0,专业:计算机科学
姓名:李四,平均成绩:90.0,研究方向:人