假定根据学生的课程得分决定是否可以参加答辩,对于本科生,得分要超过60分才可以参加答辩,对于硕士研究生要要超过80分才可以参加答辩,博士研究生要达到90分才可以参加答辩。根据上述要求,请完成以下Java类的设计: (1)设计一个基类Student描述学生的共同特征; (2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类; (3)设计一个描述硕士研究生的类Graduate,该类继承并扩展Student类; (4)设计一个描述博士研究生的类Undergraduate,该 类继承并扩展Student类; (5)设计一个测试类StudentDemo, 分别创建本科生、硕士研究生和博士研究生这三个类的对象,并输出相关信息。
时间: 2023-03-21 20:00:30 浏览: 56
以下是Java类的设计:
```java
// 定义一个学生类
public class Student {
private String name; // 姓名
private int score; // 成绩
// 构造函数
public Student(String name, int score) {
this.name = name;
this.score = score;
}
// 获取姓名
public String getName() {
return name;
}
// 获取成绩
public int getScore() {
return score;
}
// 判断是否可以参加答辩
public boolean canAttendDefense() {
return score >= 60;
}
}
// 定义本科生类,继承自学生类
public class Undergraduate extends Student {
// 构造函数
public Undergraduate(String name, int score) {
super(name, score);
}
// 重写canAttendDefense方法
@Override
public boolean canAttendDefense() {
return getScore() >= 60;
}
}
// 定义硕士研究生类,继承自学生类
public class Graduate extends Student {
// 构造函数
public Graduate(String name, int score) {
super(name, score);
}
// 重写canAttendDefense方法
@Override
public boolean canAttendDefense() {
return getScore() >= 80;
}
}
// 定义博士研究生类,继承自学生类
public class Doctoral extends Student {
// 构造函数
public Doctoral(String name, int score) {
super(name, score);
}
// 重写canAttendDefense方法
@Override
public boolean canAttendDefense() {
return getScore() >= 90;
}
}
// 测试类
public class StudentDemo {
public static void main(String[] args) {
// 创建一个本科生
Student undergraduate = new Undergraduate("小明", 70);
System.out.println("姓名:" + undergraduate.getName() + ",是否可以参加答辩:" + undergraduate.canAttendDefense());
// 创建一个硕士研究生
Student graduate = new Graduate("小红", 85);
System.out.println("姓名:" + graduate.getName() + ",是否可以参加答辩:" + graduate.canAttendDefense());
// 创建一个博士研究生
Student doctoral = new Doctoral("小刚", 95);
System.out.println("姓名:" + doctoral.getName() + ",是否可以参加答辩:" + doctoral.canAttendDefense());
}
}
```
输出结果:
```
姓名:小明,是否可以参加答辩:true
姓名:小红,是否可以参加答辩:true
姓名:小刚,是否可以参加答辩:true
```