【发布时间】:2014-04-10 13:01:26
【问题描述】:
我有一个名为 User 的抽象类,用户可以创建为 Student 类型或 Teacher 类型。我已经创建了一个用户(学生和教师)的 ArrayList,我想做的是根据当前对象的实例调用一个方法示例:
for (User user : listOfUsers) {
String name = user.getName();
if (user instanceof Student) {
// call getGrade();
} else { // it is an instance of a Teacher
// call getSubject();
}
}
我遇到的问题是因为它是User对象的ArrayList,它无法获取Student类型的方法,例如getGrade()。但是,因为我能够确定当前用户的实例,所以我很好奇是否仍然可以根据用户类型调用特定方法。
这可能吗,还是我必须将用户类型分成单独的列表?
请尽快回复,非常感谢。
【问题讨论】:
标签: java arraylist abstract-class abstract instanceof