Какой тип должен быть мой класс для доступа к классу и классу, который он расширен?
-
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
может представлять оба типа.