Какой тип должен быть мой класс для доступа к классу и классу, который он расширен?

StackOverflow https://stackoverflow.com/questions/3567010

  •  01-10-2019
  •  | 
  •  

Вопрос

у тебя есть

public class Question

а также

public class MultipleChoice extends Question

а также

public class SurveyQuestions

Откуда есть обследование

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

В главном вы продолжаете добавлять вопросы, и все вопросы, которые состоят в списке.

После этого вы хотите повторять список

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

Вопрос: Какой тип должен «Q» быть таким, чтобы у него есть доступ к обоим вопросам, так и в мультиплеении?

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top