0
public static ArrayList <Student> createStudents()
{
    ArrayList<Student> students;
    students = new ArrayList<Student>();

    students.add(new UndergradStudent("Kvin", 15, 'M', 4));
    students.add(new GraduateStudent("Kaley", 24, 'F', "Expert Systems"));
    students.add(new UndergradStudent("Mike", 25, 'M', 2));
    students.add(new GraduateStudent("Bob", 20, 'F', "Extreme Programming"));

    return students;
}
public static void printGradStudents(ArrayList<Student> students)
{
    int count;
    Student student;
    System.out.println("\n\nList of Graduate Students:\n");

    for (count=0; count<students.size(); count++)
    {
        student = students.get(count);
        if (?)
        {
            System.out.println(student);
        }
    }
}

## 大学院生は学生のサブクラスです. 大学院生の情報を出力したいだけの場合, if 文には何を入れればよいでしょうか?##

4

3 に答える 3

0
if(student instanceof (GraduateStudent))

渡されたクラスが GraduateStudent または underGraduate のインスタンスであるかどうかを確認します。ブール値を返します。

于 2013-03-06T03:51:00.363 に答える
0
if (student instanceof GraduateStudent)

それはそれを処理する必要があります。instanceof は、それがそのクラスのメンバーであるか、そのクラスから継承されているかを確認します。したがって、学生は、GraduateStudent および Student のインスタンスになります。

アップデート

コメントで正しく言及されているように、showInfo()各インスタンスにクラスを追加することは、これを行う別の方法です。

于 2013-03-06T03:51:16.310 に答える
0

instanceOf演算子を使用できます

 if(student instanceOf GraduateStudent)
于 2013-03-06T03:51:31.503 に答える