私のプログラムには次のクラスがあります。
public abstract class Question {
private Topic topic;
private String text;
// methods
}
public class OpenQuestion extends Question {
// methods
}
public class MultipleChoiceQuestion extends Question {
private List<String> options = new ArrayList<String>();
private String correct;
// methods
}
また、私が持っている別のクラス Test があります:
Question question;
// if the question is open
if(question instanceof OpenQuestion) {
...
}
// if the question is multiple choice
if(question instanceof MultipleChoiceQuestion) {
...
}
instanceof
OOPの原則に違反していると言われたので、私はに代わるものを見つけようとしています。
質問がオープンか多肢選択かを知るための他の良い方法はありますか?