JAVA继承

package basic.day09;

import java.util.Scanner;
import java.util.Arrays;

public class PaperDemo {
  public static void main(String[] args) {
    //paper 考卷, 考卷是选择题的集合(数组)
    //选择题有两种, 可以是单选题, 也可以是多选题
    // 具体的题目是多态(多种多样)的!
    Question[] paper = {null, null};//new Question[2];
    //父类型变量可以引用子类型实例
    paper[0]=new SingleQuestion("如何买火车票靠谱?",
    new String[]{"A.电话","B.网上","C.黄牛","D.画的"}, 
        'A');
    paper[1]=new MultiQuestion("那几位是达内老师?",
        new String[]{"A.宁丽鹃","B.刘苍松",
                    "C.程祖红", "D.孙悟空"},
        new char[]{'A','B','C'});
    Scanner console = new Scanner(System.in);
    for(int i=0; i<paper.length; i++){
      Question q = paper[i];//q代表考卷上的每道题,
      q.print();//打印试题 本质 print(q)
      System.out.print("请选择:");
      String str = console.nextLine();//等待用户答案
      char[] answers = str.toUpperCase().toCharArray();//转换答案为数组
      //方法是动态绑定到对象, 有具体对象决定执行那个方法
      //Java在编译期间按照类型检查语法(属性/方法), 执行期间
      //调用对象的方法, 这种现象叫方法的"动态绑定"
      // 覆盖的方法执行是多态的 
      Arrays.sort(answers);
      if(q.check(answers)){//检查用户答案
        System.out.println("给力呀!");
      }else{
        System.out.println("亲, 要努力呀!");
      }
    }    
  }
}
原文地址:https://www.cnblogs.com/xiaoCon/p/2934345.html