以下是一个以学校选课过程为主题的 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抽象类表示学生,包含了namestudentId成员变量,并定义了一个抽象方法displayInfo()来显示学生信息。Teacher类和Undergraduate类分别继承了Student类,并实现了Selectable接口,同时重写了父类的方法。

Main类的main()方法中,创建了一个Teacher对象和一个Undergraduate对象,并调用它们的方法来展示信息和进行选课操作。

Java 面向对象编程实践:模拟学校选课系统

原文地址: https://www.cveoy.top/t/topic/Vbu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录