定义一个Question类及它的两个子类SingleQuestion(单选题)、
MultiQuestion(多选题)
Question类:
属性:
题号:int id
题干:String text
选项:String[] options
方法:
打印题目信息:print();
判断用户答案:check();
SingleQuestion和MultiQuestion :
属性:参考答案:String answer;
利用多态思想,打印输出两个单选题和两个多选题
abstract class Question
{
public int id;
public String text;
public String[] options;
String answer;
public void print()
{
System.out.print(id + ": ");
System.out.println(text);
for (String s : options) System.out.println(s);
}
public Boolean check()
{
Scanner in=new Scanner(System.in);
String s = in.nextLine();
return check(s);
}
public abstract Boolean check(String s);
}
class SingleQuestion Extends Question
{
public Boolean check(String s)
{
return s.equals(answer);
}
}
class MultiQuestion Extends Question
{
public Boolean check(String s)
{
String[] a1 = answer.Split(',');
Arrays.sort(a1);
String[] a2 = s.Split(',');
Arrays.sort(a1);
if (a1.length != a2.length) return false;
for (int i = 0; i < a1.length; i++) if (!a1[i].equals(a2[i])) return false;
return true;
}
}
//调用代码,采纳以后写给你