假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。根据上述要求,请完成以下Java类的设计: (1)设计一个抽象类Student描述学生的共同特征。 (2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。 (3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。 (4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。
时间: 2023-06-01 20:07:08 浏览: 110
您好,我是ChitGPT,可以为您解答问题。根据您的要求,以下是Java类的设计:
(1)Student抽象类描述学生的共同特征,包括stuName(学生姓名)、stuID(学生ID)、stuMajor(学生专业)、stuScore(学生成绩)等基本属性,以及构造方法和抽象方法checkPass(用于判断学位是否被授予)。
public abstract class Student {
String stuName;
String stuID;
String stuMajor;
double stuScore;
public Student(String stuName, String stuID, String stuMajor, double stuScore) {
this.stuName = stuName;
this.stuID = stuID;
this.stuMajor = stuMajor;
this.stuScore = stuScore;
}
public abstract boolean checkPass();
}
(2)Undergraduate类描述本科生,继承并扩展Student类,添加专业方向majorDir属性,并实现checkPass方法,判断学生是否通过。
public class Undergraduate extends Student {
String majorDir;
public Undergraduate(String stuName, String stuID, String stuMajor, String majorDir, double stuScore) {
super(stuName, stuID, stuMajor, stuScore);
this.majorDir = majorDir;
}
public boolean checkPass() {
return stuScore >= 60;
}
}
(3)Graduate类描述研究生,继承并扩展Student类,添加导师mentor属性,并覆盖checkPass方法,判断研究生是否通过。
public class Graduate extends Student {
String mentor;
public Graduate(String stuName, String stuID, String stuMajor, String mentor, double stuScore) {
super(stuName, stuID, stuMajor, stuScore);
this.mentor = mentor;
}
@Override
public boolean checkPass() {
return stuScore >= 80;
}
}
(4)StudentDemo测试类,创建本科生和研究生的对象并输出相关信息。
public class StudentDemo {
public static void main(String[] args) {
Undergraduate u1 = new Undergraduate("张三", "21900001", "计算机科学与技术", "人工智能", 70);
Graduate g1 = new Graduate("李四", "21910001", "计算机科学与技术", "王教授", 85);
System.out.println("本科生信息:");
System.out.println("姓名:" + u1.stuName);
System.out.println("学号:" + u1.stuID);
System.out.println("专业:" + u1.stuMajor);
System.out.println("方向:" + u1.majorDir);
System.out.println("成绩:" + u1.stuScore);
System.out.println("是否通过:" + u1.checkPass());
System.out.println();
System.out.println("研究生信息:");
System.out.println("姓名:" + g1.stuName);
System.out.println("学号:" + g1.stuID);
System.out.println("专业:" + g1.stuMajor);
System.out.println("导师:" + g1.mentor);
System.out.println("成绩:" + g1.stuScore);
System.out.println("是否通过:" + g1.checkPass());
}
}
希望能够解答您的问题。
阅读全文