018 オブジェクト指向の深化(ポリモーフィズムの応用) 013 解答例

// 抽象クラス Student
abstract class Student {
    // calculateGrade メソッド
    public abstract void calculateGrade();
}

// UndergraduateStudent クラス
class UndergraduateStudent extends Student {
    // オーバーライドされたメソッド
    @Override
    public void calculateGrade() {
        System.out.println("Calculating undergraduate student's grade...");
        // 成績計算の具体的な処理を追加
    }
}

// GraduateStudent クラス
class GraduateStudent extends Student {
    // オーバーライドされたメソッド
    @Override
    public void calculateGrade() {
        System.out.println("Calculating graduate student's grade...");
        // 成績計算の具体的な処理を追加
    }
}

// Main クラス
public class Main {
    public static void main(String[] args) {
        // 異なる種類の学生のインスタンスを生成
        Student undergraduateStudent = new UndergraduateStudent();
        Student graduateStudent = new GraduateStudent();

        // 学生の成績を計算し、結果を表示
        System.out.println("Calculating grades for an undergraduate student:");
        undergraduateStudent.calculateGrade();

        System.out.println("\nCalculating grades for a graduate student:");
        graduateStudent.calculateGrade();
    }
}

このプログラムでは、Student 抽象クラスを作成し、UndergraduateStudent クラスと GraduateStudent クラスがそれを継承しています。calculateGrade メソッドがオーバーライドされ、main メソッドで異なる種類の学生の成績が計算されるときの挙動が表示されます。

「018 オブジェクト指向の深化」問題集リスト