Какого типа должен быть мой класс для доступа к классу и к классу, который он расширил? - PullRequest
1 голос
/ 25 августа 2010

у вас есть

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», чтобы у него был доступ и к вопросу, и к множественному выбору?

Ответы [ 2 ]

3 голосов
/ 25 августа 2010

Если под «доступом к» вы подразумеваете «доступ к методам» - вы не можете иметь его как MultipleChoice, потому что некоторые вопросы могут быть не такими. Таким образом, это должно быть Question, а затем вы можете проверить, если это множественный выбор, по if(q instanceof MultipleChoice)

1 голос
/ 25 августа 2010

Вы должны сделать это Question.

Вы не можете сделать это MultipleChoice как обычное Question не a MultipleChoice ... но MultipleChoice является Question.Так что Question может представлять оба типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...