预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共15页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

中国石油大学(北京)远程教育学院期末考试《Java语言程序设计》学习中心:___姓名:___学号:__关于课程考试违规作弊的说明1、提交文献中涉嫌抄袭内容(涉及抄袭网上、书籍、报刊杂志及其他已有论文),带有明显外校标记,不符合学院规定或学生本人情况,或存在查明出处的内容或其他可疑字样者,判为抄袭,成绩为“0”。2、两人或两人以上答题内容或用语有50%以上相同者判为雷同,成绩为“0”。3、所提交试卷或材料没有对老师题目进行作答或提交内容与该课程规定完全不一、题型简答题,4题,每题15分,共60分;编程题,2题,每题20分,共40分二、题目共两套题,学号末尾数单号学生做第一套,学号末尾数双号学生做第二套题第一套题一、简答题1什么是多态性?方法的重载和覆盖有何区别?阅读下列代码,指出其中存在的重载和覆盖,写出输出结果是什么?解释为什么这样输出?(15分)classC1{publicvoidf(){System.out.println("C1.f");}}classC2extendsC1{publicvoidf(){System.out.println("C2.f");}}classC3{publicvoidg(C1one){System.out.println("g(C1)");one.f();}publicvoidg(C2two){System.out.println("g(C2)");two.f();}}publicclassMain1{publicstaticvoidmain(String[]args){C1one=newC2();C3three=newC3();three.g(one);}}答:1.多态性是指允许不同类的对象对统一消息做出响应。多态涉及参数化多态和包含多态。多态性语言具有灵活、抽象、行为共享、代码共享等优势,很好地解决了应用程序函数同名问题。重载是指同一个类中有多个同名的方法,但这些方法有着不同的参数,因此在编译时就可以拟定到底调用哪个方法,它是一种编译时多态。覆盖是指子类可以覆盖父类的方法,同样的方法会在子类和父类中有着不同的变现形式。即重载是一个类的多态性表现,而覆盖是子类和父类的一种多态性表现。classC1{publicvoidf(){System.out.println("C1.f");}}classC2extendsC1{publicvoidf(){System.out.println("C2.f");//覆盖,子类C2重写了父类C1中的f()方法}}classC3{publicvoidg(C1one){System.out.println("g(C1)");one.f();}publicvoidg(C2two){//重载,根据传入参数不同,C3实现不同的g()方法System.out.println("g(C2)");two.f();}}publicclassMain1{publicstaticvoidmain(String[]args){C1one=newC2();C3three=newC3();three.g(one);}}输出:g(C1)C2.f因素:由于子类C2的f()方法与父类C1的方法同名,因此C2的方法会覆盖C1的方法。在执行C1one=newC2()语句时,会调用C1类的构造函数,因此three.g(one)语句会调用传入参数为C1的g()方法,输出g(C1)。而由于实际创建的是C2类的方法,后面的方法调用都会调用子类C2的方法,因此输出C2.f。2、请用自己的语言介绍throw/throws有什么联系和区别?在程序中应如何使用?此外谈谈final、finally的区别和作用,必须举例说明用法。(15分)答:若某个方法也许会发生异常,但不想在当前方法中解决这个异常,则可以使用throws、throw关键字在方法中抛出异常。throw关键字通常用于方法体中,并且抛出一个异常对象,程序在执行到throw语句时立即终止,它后面的语句都不执行。throws关键字通常被应用在声明方法时,用来指定方法也许抛出的异常,多个异常可以使用逗号分隔,使用throws关键字将异常抛给上一级后,假如不想解决该异常,可以继续向上抛出,但最终要有可以解决该异常的代码。/**在类Main中创建pop()方法,在该方法中抛出Exception异常,在主方法中调用该方法,并实现异常解决*/publicclassMain{//创建类staticvoidpop()throwsException{//定义方法并抛出异常inta=1/0;//除数为0}publicstaticvoidmain(String[]args){//主方法try{pop();//调用pop()方法}catch(Exceptione){System