第七章继承多态练习题教学教材.docx

上传人:b****3 文档编号:5710078 上传时间:2023-05-09 格式:DOCX 页数:13 大小:134.87KB
下载 相关 举报
第七章继承多态练习题教学教材.docx_第1页
第1页 / 共13页
第七章继承多态练习题教学教材.docx_第2页
第2页 / 共13页
第七章继承多态练习题教学教材.docx_第3页
第3页 / 共13页
第七章继承多态练习题教学教材.docx_第4页
第4页 / 共13页
第七章继承多态练习题教学教材.docx_第5页
第5页 / 共13页
第七章继承多态练习题教学教材.docx_第6页
第6页 / 共13页
第七章继承多态练习题教学教材.docx_第7页
第7页 / 共13页
第七章继承多态练习题教学教材.docx_第8页
第8页 / 共13页
第七章继承多态练习题教学教材.docx_第9页
第9页 / 共13页
第七章继承多态练习题教学教材.docx_第10页
第10页 / 共13页
第七章继承多态练习题教学教材.docx_第11页
第11页 / 共13页
第七章继承多态练习题教学教材.docx_第12页
第12页 / 共13页
第七章继承多态练习题教学教材.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第七章继承多态练习题教学教材.docx

《第七章继承多态练习题教学教材.docx》由会员分享,可在线阅读,更多相关《第七章继承多态练习题教学教材.docx(13页珍藏版)》请在冰点文库上搜索。

第七章继承多态练习题教学教材.docx

第七章继承多态练习题教学教材

 

第七章继承多态练习题

第七章继承多态

一、选择题:

1、分析:

classA{

A(){}

}

classBextendsA{//系统自动生成的构造方法和类的访问权限一样

}

哪两种说法是正确的?

()

A:

类B的构造方法是public的.B:

类B的构造方法包含对this()的调用.

C:

类B的构造方法没有参数.D:

类B的构造方法包含对super()的调用.

2、运行结果是:

()

classBase{

Base(){System.out.print("Base");}

}

publicclassAlphaextendsBase{

publicstaticvoidmain(String[]args){

newAlpha();

newBase();

}

}

A:

BaseB:

BaseBaseC:

编译失败.D:

没有输出.E:

运行时异常.

3.程序的运行结果是?

()

A:

编译失败.B:

hellofromaC:

hellofromb

D:

hellofrombE:

hellofroma

hellofromahellofromb

4.运行结果是:

()

classTestSuper{

TestSuper(inti){}

}

classTestSubextendsTestSuper{}

classTestAll{

publicstaticvoidmain(String[]args){

newTestSub();

}

}

A:

编译失败.B:

程序运行没有异常.

C:

第7行抛出异常.D:

第2行抛出异常.

5.程序的运行结果是?

()

A:

0B:

1C:

2D:

编译失败.

6.对于语句"BisaD"和"BhasaC",一下哪两种说法是正确的?

()

A:

D是B.B:

B是D.C:

D是C.D:

B是C.E:

D继承B.F:

B继承D.

7.运行结果是?

()

A:

1B:

2C:

第8行编译失败.D:

第14行编译失败.

8.分析:

publicclassConstOver{

publicConstOver(intx,inty,intz){

}

}

哪两个是对ConstOver的构造方法的重载?

()

A:

ConstOver(){}B:

protectedintConstOver(){}

C:

privateConstOver(intz,inty,bytex){}

D:

publicObjectConstOver(intx,inty,intz){}

E:

publicvoidConstOver(bytex,bytey,bytez){}

9.运行结果是?

()

A:

4,4B:

4,5C:

5,4D:

5,5E:

编译失败.

10.分析:

publicclassX{

publicXaMethod(){returnthis;}

}

1)publicclassYextendsX{

2)

3)}

在第2行可以插入哪两项?

()

A:

publicvoidaMethod(){}B:

privatevoidaMethod(){}

C:

publicvoidaMethod(Strings){}D:

privateYaMethod(){returnnull;}

E:

publicXaMethod(){returnnewY();}

11.运行结果是?

()

A:

4,4B:

4,5C:

5,4D:

5,5E:

编译失败.

12.以下哪两个重载了方法setVar()?

()

publicclassMethodOver{

publicvoidsetVar(inta,intb,floatc){

}

}

A:

privatevoidsetVar(inta,floatc,intb){}B:

publicintsetVar(inta,floatc,intb){returna;}

C:

protectedvoidsetVar(inta,intb,floatc){}D:

publicintsetVar(inta,intb,floatc){returna;}

E:

protectedfloatsetVar(inta,intb,floatc){returnc;}

13.分析:

1)classBaseClass{

2)privatefloatx=1.0f;

3)protectedvoidsetVar(floatf){x=f;}

4)}

5)classSubClassextendsBaseClass{

6)privatefloatx=2.0f;

7)//insertcodehere

8)}

在第7行插入哪两个覆盖了方法setVar()?

()

A:

voidsetVar(floatf){x=f;}B:

publicvoidsetVar(intf){x=f;}

C:

publicvoidsetVar(floatf){x=f;}D:

publicdoublesetVar(floatf){returnf;}

E:

publicfinalvoidsetVar(floatf){x=f;}F:

protectedfloatsetVar(){x=3.0f;return3.0f;}

14.运行结果是?

()

A:

1B:

2C:

运行时异常.D:

第8行编译错误.E:

第14行编译错误.

15.分析:

classA{

protectedintmethod1(inta,intb){return0;}

}

在A的子类中,以下哪两个方法是合法的?

()

A:

publicintmethod1(inta,intb){return0;}B:

privateintmethod1(inta,longb){return0;}

C:

privateintmethod1(inta,intb){return0;}D:

publicshortmethod1(inta,intb){return0;}

E:

staticprotectedintmethod1(inta,intb){return0;}

16.分析:

1)publicabstractclassTest{

2)publicabstractvoidmethodA();

3)

4)publicabstractvoidmethodB()

5){

6)System.out.println("Hello");

7)}

8)}

哪两种改法,可以使程序通过编译?

()

A:

给方法methodA()加方法体C:

在Test的声明中去掉abstract

B:

用";"替换第5-7行D:

在方法methodA()的声明中去掉abstract

E:

在方法methodB()的声明中去掉abstract

17.运行结果是:

()

1)abstractclassAbstractIt{

2)abstractfloatgetFloat();

3)}

4)publicclassAbstractTestextendsAbstractIt{

5)privatefloatf1=1.0f;

6)privatefloatgetFloat(){returnf1;}

7)}

A:

编译成功.B:

运行时异常.C:

第2行编译失败.D:

第6行编译失败.

18.在接口中哪两个方法的声明是合法的?

()

A:

voidmethod1();B:

publicvoidmethod2();C:

staticpublicvoidmethod5();

D:

protectedvoidmethod3();E:

finalpublicvoidmethod4();

19.分析:

1)publicinterfaceFoo{

2)intk=4;

3)}

哪三项与第2行等价?

()

A:

finalintk=4;B:

publicintk=4;C:

staticintk=4;

D:

abstractintk=4;E:

volatileintk=4;F:

protectedintk=4;

20.分析:

interfaceInter{}

classAimplementsInter{}

classBextendsA{

B(){

A[]arr=newA[10];

booleanb1=thisinstanceofInter;

booleanb2=arrinstanceofObject;

System.out.println("b1="+b1+",b2="+b2);

}

}

创建B的对象时会输出?

()

A:

编译失败.B:

b1=true,b2=trueC:

b1=true,b2=false

D:

b1=false,b2=trueE:

b1=false,b2=false

21.哪一个能通过编译?

()

A:

newAnimal().soundOff();B:

Lionl=Alpha1.get("meateater");

C:

Elephante=newAlpha1();D:

newAlpha1().get("veggie").soundOff();

22.分析:

classPassenger{}

classEngine{}

interfaceTransportVehicle{

voidloadPassengers();

}

interfaceHelicopterextendsTransportVehicle{

intflyIt(Stringdirection);

}

abstractclassJetStreamimplementsHelicopter{}

哪种说法是正确的?

()

A:

TransportVehiclehasaPassenger.B:

类Engine在类JetStream中.

C:

接口TransportVehicle可以形成多态的基础.

D:

继承JetStream的非抽象类可以随意声明方法loadPassengers().

23.哪三个是"isa"关系?

()

A:

publicclassX{}B:

publicinterfaceShape{}

publicclassYextendsX{}publicinterfaceRectangleextendsShape{}

C:

publicinterfaceColor{}D:

publicclassSpecies{}

publicclassShape{privateColorcolor;}publicclassAnimal{privateSpeciesspecies;}

E:

publicclassPerson{}F:

interfaceComponent{}

publicclassEmployee{classContainerimplementsComponent{

publicEmployee(Personperson){}privateComponent[]children;

}}

24.运行结果是:

()

publicinterfaceTest{

intfrood=42;

}

classTestImplimplementsTest{

privatestaticintfrood;

publicstaticvoidmain(String[]args){

System.out.println(++frood);

}

}

A:

0B:

1C:

42D:

43E:

编译失败.F:

运行时异常.

25.运行结果是?

()

A:

5B:

10C:

编译失败.D:

运行时异常.

26.运行结果是:

()

1)publicclassTest{

2)publicstaticvoidmain(Stringargs[]){

3)classFoo{

4)publicinti=3;

5)}

6)Objecto=(Object)newFoo();

7)Foofoo=(Foo)o;

8)System.out.println("i="+foo.i);

9)}

10)}

A:

i=3C:

第6行抛出ClassCastException异常.

B:

编译失败.D:

第7行抛出ClassCastException异常.

27.分析:

Strings="abcde";

Objectob=(Object)s;

if(ob.equals(s)){

System.out.println("AAAA");

}else{

System.out.println("BBBB");

}

if(s.equals(ob)){

System.out.println("CCCC");

}else{

System.out.println("DDDD");

}

输出哪两行?

()

A:

AAAAB:

BBBBC:

CCCCD:

DDDD

二、简答题

1.简述类与类之间的关系

2.简述继承的基本概念及继承的过程

3.简述方法重写以及方法重载与方法重写的区别

4.简述super关键字的用法

5.简述重写equals方法的步骤

6.简述instanceof关键字的用法

7.简述接口和抽象类的区别

8.简述什么是多态

三、编程题

1.设计一个学生类Student,包括的属性有姓名name,年龄age,学位degree。

由学生类派生出本科生类Undergraduate和研究生类Graduate,本科生类包含的属性有专业specialty,研究生类包括的属性有研究方向studyDrection。

每个类都有相关数据的输出方法。

最后在一个测试类中对设计的类进行测试。

要求测试结果如下:

姓名:

王军

年龄:

23

学位:

本科

专业:

工业自动化

姓名:

刘君

年龄:

27

学位:

硕士

研究方向:

网络技术

2.定义一组交通工具类,包括汽车类(AutoMobile)、飞机类(Plane)、船类(Ship),其中汽车类有坦克(Tank)、卡车(Truck)、小汽车(Car),飞机子类有客机(AirLiner)、战斗机(FighterPlane),船类有子类游艇(Yacht)、军舰(WarShip),坦克战斗机和军舰都具有攻击的功能,抽象并定义这些类,通过抽象类和接口以及对应的实现类实现多态和这些类的测试

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2