Java 面向对象编程实践:模拟学校选课系统
以下是一个以学校选课过程为主题的 Java 程序示例,使用了接口、类、抽象类,以及相关的语法要素:
// 定义一个接口,表示可选课的对象
interface Selectable {
void selectCourse(); // 抽象方法,表示选课操作
}
// 定义一个抽象类,表示学生
abstract class Student {
protected String name;
protected int studentId;
protected Student(String name, int studentId) {
this.name = name;
this.studentId = studentId;
}
public abstract void displayInfo(); // 抽象方法,用于显示学生信息
}
// 定义一个具体类,表示老师
class Teacher extends Student implements Selectable {
private String department;
public Teacher(String name, int teacherId, String department) {
super(name, teacherId);
this.department = department;
}
@Override
public void displayInfo() {
System.out.println('Teacher: ' + name + ', ID: ' + studentId + ', Department: ' + department);
}
@Override
public void selectCourse() {
System.out.println('Teacher ' + name + ' is selecting a course.');
}
}
// 定义一个具体类,表示学生
class Undergraduate extends Student implements Selectable {
private int grade;
public Undergraduate(String name, int studentId, int grade) {
super(name, studentId);
this.grade = grade;
}
@Override
public void displayInfo() {
System.out.println('Undergraduate: ' + name + ', ID: ' + studentId + ', Grade: ' + grade);
}
@Override
public void selectCourse() {
System.out.println('Undergraduate ' + name + ' is selecting a course.');
}
}
// 主程序入口
public class Main {
public static void main(String[] args) {
Teacher teacher = new Teacher('John', 123, 'Math');
Undergraduate undergraduate = new Undergraduate('Alice', 456, 3);
teacher.displayInfo();
teacher.selectCourse();
undergraduate.displayInfo();
undergraduate.selectCourse();
}
}
该程序模拟了一个学校的选课过程。其中,Selectable接口表示可选课的对象,包含了一个selectCourse()方法。Student抽象类表示学生,包含了name和studentId成员变量,并定义了一个抽象方法displayInfo()来显示学生信息。Teacher类和Undergraduate类分别继承了Student类,并实现了Selectable接口,同时重写了父类的方法。
在Main类的main()方法中,创建了一个Teacher对象和一个Undergraduate对象,并调用它们的方法来展示信息和进行选课操作。
原文地址: https://www.cveoy.top/t/topic/Vbu 著作权归作者所有。请勿转载和采集!