在Android中使用多态设计一个Class,用于选择题和填空题。我们可以先定义一个Question类作为父类,然后派生出MultipleChoiceQuestion类和FillInBlankQuestion类作为子类。

首先,定义Question类:

public abstract class Question {
    private String questionText;

    public Question(String questionText) {
        this.questionText = questionText;
    }

    public String getQuestionText() {
        return questionText;
    }

    public abstract void displayQuestion();
    public abstract void displayOptions();
}

接下来,定义MultipleChoiceQuestion类作为选择题的子类:

public class MultipleChoiceQuestion extends Question {
    private ArrayList<String> options;

    public MultipleChoiceQuestion(String questionText, ArrayList<String> options) {
        super(questionText);
        this.options = options;
    }

    @Override
    public void displayQuestion() {
        System.out.println(getQuestionText());
    }

    @Override
    public void displayOptions() {
        System.out.println("Options:");
        for (int i = 0; i < options.size(); i++) {
            System.out.println((i + 1) + ". " + options.get(i));
        }
    }
}

最后,定义FillInBlankQuestion类作为填空题的子类:

public class FillInBlankQuestion extends Question {
    private int numberOfBlanks;

    public FillInBlankQuestion(String questionText, int numberOfBlanks) {
        super(questionText);
        this.numberOfBlanks = numberOfBlanks;
    }

    @Override
    public void displayQuestion() {
        System.out.println(getQuestionText());
    }

    @Override
    public void displayOptions() {
        System.out.println("Number of blanks: " + numberOfBlanks);
    }
}

现在我们可以根据需要创建选择题和填空题的实例,并调用它们的方法来显示问题和选项。例如:

Question question1 = new MultipleChoiceQuestion("What is the capital of France?", new ArrayList<>(Arrays.asList("Paris", "London", "Berlin")));
question1.displayQuestion();
question1.displayOptions();

Question question2 = new FillInBlankQuestion("The tallest mountain in the world is __________.", 1);
question2.displayQuestion();
question2.displayOptions();

通过使用多态,我们可以将这些不同类型的问题都存储在一个Question类型的变量中,并根据需要调用它们的方法

android中使用多态设计一个CLASS用于选择题和填空题

原文地址: https://www.cveoy.top/t/topic/iahv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录