我的班级应该使用什么类型来访问类及其扩展的类?

时间:2010-08-25 14:38:23

标签: java inheritance extends

你有

public class Question

public class MultipleChoice extends Question

public class SurveyQuestions

SurveyQuestions有

private static List<Question> q = new ArrayList<Question>();

在主要内容中,您不断添加问题以及所有问题都由列表组成。

完成后,您想迭代列表

for (Question q : SurveyQuestions.getInstance().getListOfQuestions())

问题:“q”应该是什么类型才能访问Question和MultipleChoice?

2 个答案:

答案 0 :(得分:3)

如果通过“访问”来表示“访问方法” - 您不能将其作为MultipleChoice,因为某些问题可能不是这样。所以它必须是Question,然后您可以if(q instanceof MultipleChoice)

检查它是否是多项选择

答案 1 :(得分:1)

你应该Question

你无法将MultipleChoice作为普通Question MultipleChoice ...而是MultipleChoice Question。因此Question可以代表两种类型。