Я бы рекомендовал использовать операторы if / else, чтобы показать и скрыть различные вопросы.
Причина, по которой я говорю «если / иначе» вместо подкласса, заключается в том, что вы столкнетесь с ситуацией, когда вопрос, который раньше был «общим» для всех департаментов, становится специфическим для некоторых, и вам придется рефакторинг этого вопроса для подклассов и удаление его, где это не применимо. Код if / else может быть утомительным, но не более утомительным, чем упомянутый выше рефакторинг.
Кроме того, я также призываю вас настоятельно рассмотреть вопрос о нормализации вопросов вашего опроса. Другими словами, в приведенном выше примере я хотел бы сделать произвольный текст и задать два разных вопроса. Это не меняет то, как вводятся ответы, это просто меняет то, как вы рассматриваете различные вопросы.
Причина, по которой я говорю это, заключается в том, что любой анализ ответов, который вы будете проводить, зависит от сравнения яблок с яблоками - когда вы ограничиваете или освобождаете список доступных вариантов, вы сравниваете яблоки с апельсинами.