JAVA复习题(继承)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

仅供个人学习参考类的继承习题一、选择题1.Java语言的类间的继承关系是(B)。A)多重的B)单重的C)线程的D)不能继承2.以下关于Java语言继承的说法正确的是(C)。A)Java中的类可以有多个直接父类B)抽象类不能有子类C)Java中的接口支持多继承D)最终类可以作为其它类的父类3.现有两个类A、B,以下描述中表示B继承自A的是(D)。A)classAextendsBB)classBimplementsAC)classAimplementsBD)classBextendsA4.下列选项中,用于定义接口的关键字是(A)。A)interfaceB)implementsC)abstractD)class5.下列选项中,用于实现接口的关键字是(B)。A)interfaceB)implementsC)abstractD)class6.Java语言的类间的继承的关键字是(B)。A)implementsB)extendsC)classD)public7.以下关于Java语言继承的说法错误的是(A)。A)Java中的类可以有多个直接父类B)抽象类可以有子类C)Java中的接口支持多继承D)最终类不可以作为其它类的父类8.现有两个类M、N,以下描述中表示N继承自M的是(D)。A)classMextendsNB)classNimplementsMC)classMimplementsND)classNextendsM9.现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。A)classAimplementsBB)classBimplementsAC)classAextendsBD)classBextendsA10.下列选项中,定义抽象类的关键字是(C)。A)interfaceB)implementsC)abstractD)class11.下列选项中,定义最终类的关键字是(D)。A)interfaceB)implementsC)abstractD)final12.下列选项中,哪个是java语言所有类的父类(C)A)StringB)VectorC)ObjectD)KeyEvent13.java语言中,用于判断某个对象是否是某个类的实例的运算符是(A)A)instanceofB)+C)isinstanceD)&&14.下列选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修饰符是(B)A)publicB)protectedC)privateD)final15.下列选项中,表示数据或方法只能被本类访问的修饰符是(C)A)publicB)protectedC)privateD)final16.下列选项中,接口中方法的默认可见性修饰符是(A)A)publicB)protectedC)privateD)final17.下列选项中,表示终极方法的修饰符是:(B)A)interfaceB)finalC)abstractD)implements18.下列选项中,定义接口MyInterface的语句正确的是:(A)A)interfaceMyInterface{}B)implementsMyInterface{}仅供个人学习参考C)classMyInterface{}D)implementsinterfaceMy{}19.如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:voidmymethod(inta),则子类方法的定义不合法的是:(C)A)publicvoidmymethod(inta)B)protectedvoidmymethod(inta)C)privatevoidmymethod(inta)D)voidmymethod(inta)二、填空题1.如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。(隐藏)2.属性的隐藏是指子类重新定义从父类继承来的__________。(同名变量或属性)3.如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(参数列表)4.Java仅支持类间的____重继承。(单重)5.抽象方法只有方法头,没有________。(方法体)6.Java语言的接口是特殊的类,其中包含______常量和_______方法。(static(静态);abstract(抽象))7.接口中所有属性均为_________、_________和________的。(public、static、final)8.如果接口中定义了一个方法methodA(),一个属性attA,那么一个类ClassA要实现这个接口的话,就必须实现其中的_______方法。(methodA())9.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成________的。(抽象的)10.如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(返回值类型)11.Java仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承(多重)12.在方法头用abstract修饰符进行修饰的方法叫做________方法。(抽象)13.Java语言中用于表示类间继承的关键字是___________。(extends)14.接口中所有方法均为________和________的。(public、abstract)15.Java语言中,表示一个类不能再被继承的关键字是________。(final)16.Java语言中,表示一个类A继承自父类B,并实现接口C的语句是_________________。(classAextendsBimplementsC)。17.如果子类中的方法compute()覆盖了父类中的方法compute(),假设父类的compute()方法头部有可见性修饰符public,则methodS()的可见性修饰符必须是__________。(public)三、程序阅读题1.现有类说明如下,请回答问题:publicclassA{Stringstr1=Hello!\t;Stringstr2=Howareyou?;publicStringtoString(){returnstr1+str2;}}publicclassBextendsA{Stringstr1=\b\b,Bill.;publicStringtoString()仅供个人学习参考{returnsuper.str1+str1;}}问题:1)类A和类B是什么关系?(继承关系)2)类A和类B都定义了str1属性和方法toString(),这种现象分别称为什么?(属性的隐藏;方法的覆盖)3)若a是类A的对象,则a.toString()的返回值是什么?(Hello!Howareyou?)4)若b是类B的对象,则b.toString()的返回值是什么?(Hello,Bill.)2.现有一个类定义如下,请回答问题:classEmployee{Stringname;intage;doublewage;staticintNo=0;Employee(Stringa1,inta2,doublea3){name=a1;age=a2;wage=a3;No++;}}在使用该类时,已使用下面语句生成了该类的对象:Employeee1,e2;e1=newEmployee(王劲,26,6300);e2=newEmployee(张山,30,3800);问题:1)e2.name,e2.age,e2.wage的值各是什么?(张山;30;3800.0)2)生成对象e1、e2后,e1.No值为多少?能否通过类名做前缀引用属性No?(2;能)3.阅读程序,回答问题。publicclassInheritTest1{publicstaticvoidmain(String[]args){Aaa;Bbb;aa=newA();bb=newB();aa.show();bb.show();}}classA{inta=1;doubled=2.0;voidshow(){A:+\ta=+a+\td=+d);}}classBextendsA{仅供个人学习参考floata=3.0f;Stringd=Javaprogram.;intb=4;voidshow(){A:+\ta=+super.a+\td=+super.d);super.show();B:+\ta=+a+\td=+d+\tb=+b);}}问题:1)这是哪一类java程序?(java应用程序)2)类A和类B是什么关系?(类B是类A的子类)3)按程序输出的格式写出程序运行后的结果.(程序运行结果如下:ClassA:a=1d=2.0ClassA:a=1d=2.0ClassA:a=1d=2.0ClassB:a=3.0d=Javaprogram.b=4)4.现有类说明如下,请回答问题:classA{intx=10;intgetA(){returnx;}}classBextendsA{intx=100;intgetB(){returnx;}}问题:1)类B是否能继承类A的属性x?(能)2)若b是类B的对象,则b.getB()的返回值是什么?(100)3)若b是类B的对象,则b.getA()的返回值是什么?(10)4)类A和类B都定义了x属性,这种现象称为什么?(属性的隐藏)5.有如下源程序,请回答问题:classA{Strings=classA;}classBextendsA{Strings=classB;}publicclassTypeConvert{publicstaticvoidmain(Stringargs[]){Bb1,b2=newB();Aa1,a2;a1=(A)b2;a2=b2;b1=(B)a1;}}仅供个人学习参考问题:该程序的四行输出各是什么?(classAclassAclassBclassB)6.现有类说明如下,请回答问题:publicclassA{intx=888;Stringstr=Ilike:;publicStringtoString(){returnstr+x;}}publicclassBextendsA{Stringx=java;publicStringtoString(){returnstr+x+and+super.x;}}问题:1)类A和类B是什么关系?(类B是类A的子类)2)类A和类B都定义了x属性和方法toString(),这种现象分别称为什么?(属性的隐藏和方法的覆盖)3)若a是类A的对象,则a.toString()的返回值是什么?(Ilike:888)4)若b是类B的对象,则b.toString()的返回值是什么?(Ilike:javaand888)7.运行类C的输出结果是什么?classA{publicA(){“ThedefaultconstructorofAisinvoked”);}}classBextendsA{publicB(){}}publicclassC{publicstaticvoidmain(String[]args){Bb=newB();}}8.阅读下列程序写出输出结果:classA{Strings=classA;voidshow()仅供个人学习参考{}}classBextendsA{Strings=classB;voidshow(){}}publicclassTypeConvert{publicstaticvoidmain(Stringargs[]){Bb1;Bb2=newB();Aa1,a2;a1=(A)b2;a2=b2;a1.show();a2.show();b1=(B)a1;);b1.show();b2.show();}}答案:classAclassBclassAclassBclassBclassBclassBclassB

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功