欢迎来到天天文库
浏览记录
ID:11817398
大小:80.50 KB
页数:0页
时间:2018-07-14
《java习题4参考答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题四参考答案一、判断题1.对2.对3.错4.错5.对6.错8.错9.对10.对11.错12.对13.错14.对15.对16.错17.对18.对19.错20.错【解释】²第3题:本题考查抽象类的特性。抽象类中可包含构造方法、抽象方法和具体实现的方法以及常量和变量,但不能直接实例化,一般可对抽象类的子类实例化,实例化对象引用可以是抽象类类型。²第11题:本题考查子类中可以写的方法。子类可以继承父类的方法,也可以覆盖父类的方法,也可以新增加方法,新增加的方法与从父类继承的方法可构成重载。²第13题:本题
2、考查abstract的用法。abstract可修饰类和方法,但不能修饰属性,即不能修饰类的成员变量。²第16题:本题考查final修饰的方法的特性。final修饰的方法不能被覆盖,但可以有重载的方法。二、选择题1.B2.B3、A4.B5.A6.C7.B8.D9.B10.B11.A12.D13、D14.A15.D16.D17、C18.D19、AD20、CD21、C22、C23、C24、B25.B26.D28.A【解释】²第7题:本题考查对继承、覆盖和重载的理解,属于难点。本题4个选项中的方法名与父类定
3、义的方法名都相同。选项A的方法有3个参数,选项C的方法有1个参数,都能与从父类继承的方法构成重载,可以加入子类Child中;选项B和选项D方法中的参数类型和个数都与父类定义的方法相同,由于父类定义的方法用public修饰,要想覆盖父类定义的方法,子类的方法也必须用public修饰,因此,选项D可以加入子类Child中,但选项B不行。²第8、10、13和14题:这几题主要考查子类中含有覆盖方法的调用情况。子类对象调用方法时,首先调用子类中同名和参数形式(参数个数、类型和顺序)一致的方法,否则就调用父类
4、中定义的匹配的方法。²第9题:本题考查对类实现接口的理解。在Java的接口中包括抽象方法和常量。类实现接口时,需实现接口中的所有方法,并可直接使用接口中定义的常量(等同于从接口中继承了这些常量)。本题中的接口B定义了"intk=10;”编译时会自动加上final,表示k为常量。因此,本题选B。²第11题:本题考查父类中有static修饰和没有static修饰的方法被子类覆盖的情形。当父类的方法被static修饰时,子类中覆盖的方法也必须用static修饰。反之,父类的方法没有static修饰,子类中
5、覆盖的方法也不用static修饰。所以,本题选A。²第12和16题:这2题考查子类继承父类时构造方法的定义。子类继承父类时,若父类定义了有参数的构造方法,而没有定义无参数的构造方法,那么在子类中的构造方法必须用super语句去调用父类定义的有参数的构造方法,否则无法通过编译。因此,建议在定义父类时,如写了构造方法,最好写上一个无参数的构造方法。²第18题:本题考查类的继承。选项A中的m仅在父类的方法参数中定义,无法给变量i赋值;选项B中的b是非静态成员变量,在静态的main方法中无法直接给i赋值;父
6、类定义的a是私有的,无法被子类继承,所以选项C也不对。选项D中的方法change是父类定义的公共方法,可以被子类继承和调用。因此,本题选D。²第23题:本题考查类的构造方法。程序中第2行为构造方法,第5行为方法名,Test有void修饰,它不是构造方法,可作为实例方法。程序编译能通过。运行时,第9行实例化Test对象,调用第2行的构造方法,输出3;然后执行第9行调用第5行的方法,输出2;最后执行11行,输出1。因此,本题选C。²第24题:本题考查子类实例化时的过程三、程序阅读题1.int2.(1)a
7、bstract(2)getName(3)extends(4)Stringmajor(5)getMajor3.324.resultOne=0resultTwo=48resultThree=205.PineTreeOops6.MyFunc7.输出结果为:28.hi!IamTomHowdoyoudo?9.第2行改为finaldoublePI=3.14;第5行的extends改为implements第10行的方法声明增加一个public,改为publicdoublearea()10.15111011.221
8、四、编程题1.参考代码如下:publicclassCircle{doubleradius;publicCircle(){radius=0;}publicCircle(doubler){radius=r;}publicdoublegetRadius(){returnradius;}publicdoublegetPerimeter()(return2*Math.PI*radius;}publicdoublegetArea(){returnMath.PI*radius*ra
此文档下载收益归作者所有