我应该在if语句中放入什么来获取子类对象元素?

时间:2013-03-06 03:49:30

标签: java

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语句中加入什么?##

3 个答案:

答案 0 :(得分:0)

if(student instanceof (GraduateStudent))

你想检查传入的类是否是GraduateStudent或underGraduate的实例。它将返回一个布尔。

答案 1 :(得分:0)

if (student instanceof GraduateStudent)

应该处理它。 instanceof检查它是否是该类的成员或从该类继承。所以学生将成为研究生和学生的实例

更新

正如评论中正确提到的那样,为每个实例添加showInfo()类将是另一种方法。

答案 2 :(得分:0)

您可以使用instanceOf运算符

 if(student instanceOf GraduateStudent)