java继承接口抽象类等练习.docx

上传人:b****3 文档编号:5524898 上传时间:2022-12-18 格式:DOCX 页数:13 大小:19.43KB
下载 相关 举报
java继承接口抽象类等练习.docx_第1页
第1页 / 共13页
java继承接口抽象类等练习.docx_第2页
第2页 / 共13页
java继承接口抽象类等练习.docx_第3页
第3页 / 共13页
java继承接口抽象类等练习.docx_第4页
第4页 / 共13页
java继承接口抽象类等练习.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

java继承接口抽象类等练习.docx

《java继承接口抽象类等练习.docx》由会员分享,可在线阅读,更多相关《java继承接口抽象类等练习.docx(13页珍藏版)》请在冰豆网上搜索。

java继承接口抽象类等练习.docx

java继承接口抽象类等练习

一、选择题

1、为了区分重载多态中同名的不同方法,要求(A)。

A)采用不同的参数列表B)返回值类型不同

C)调用时用类名或对象名做前缀D)参数名不同

2、定义主类的类头时可以使用的访问控制符是(C)。

A)privateB)protectedC)publicD)privateprotected

3、下列整型的常量属性i的定义中,正确的是(A)。

A)staticfinalinti=100;B)finalinti;

C)staticinti;D)finalfloati=1.2f;

4、设x,y均为已定义的类名,下列声明对象x1的语句中正确的是(C)。

A)publicxx1=newy();B)xx1=x();

C)xx1=newx();D)intxx1;

5、下列方法定义中,正确的是(D)。

A)intx(inta,b)B)doublex(inta,intb)

{return(a-b);}{intw;w=a-b;}

C)doublex(a,b)D)intx(inta,intb)

{returnb;}{returna-b;}

6、为了使包sos在当前程序中可见,可以使用的语句是(A)。

A)importsos.*;B)packagesos.*;

C)sosimport;D)sospackage;

7、设i、j、k为类x中定义的int型变量名,下列类x的构造函数中正确的是(ACD)。

A)x(intm){...}B)voidx(intm){...}

C)x(intm,intn){...}D)x(inth,intm,intn){...}

8、下列类头定义中,正确的是(ACD)。

A)classxB)publicxextendsy

{....}{....}

C)publicclassxextendsyD)classxextendsyimplementsy1

{....}{....}

9、下面是有关子类继承父类构造函数的描述,其中正确的是(C)。

A)创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。

B)子类无条件地继承父类不含参数的构造函数。

C)子类通过super关键字调用父类的构造函数。

D)子类无法调用父类的构造函数。

10、下面说法正确的是(A)。

A)final可修饰类、属性、方法。

B)abstract可修饰类、属性、方法。

C)定义抽象方法需有方法的返回类型、名称、参数列表和方法体。

D)用final修饰的变量,在程序中可对这个变量的值进行更改。

11、现有两个类A、B,以下描述中表示B继承自A的是(D)。

A)classAextendsBB)classBimplementsA

C)classAimplementsBD)classBextendsA

12、Java中的每一个类:

(AC)

A)只能有一个父类B)可以有多个父类

C)可以没有父类D)只能实现一个接口

13、以下程序运行结果是:

(A)

publicclassFatherClass{

  publicFatherClass(){

  System.out.print("Father");

  }

  }

  publicclassChildClassextendsFatherClass{

  publicChildClass(){

  System.out.print("Child");

  }

  publicstaticvoidmain(String[]args){

  FatherClassfc=newChildClass();

  }

  }

A)FatherChildB)Child

C)FatherD)出错

 

15、同一类中有两个以上方法同名称,Java语言规定:

(C)

A)不允许重载;

B)父类的方法与子类的方法不构成重载;

C)重载方法的参数表必须不同;

D)重载方法类型必须不同。

16、下述关于继承的说法正确的是:

(CD)

A)要从一个父类派生出一个子类,就要将父类代码全部复制过来,再添上子类特有的代码。

B)声明继承某个父类就意味着可以使用父类的全部非private变量和方法。

C)子类中可以定义与父类中相同的方法。

D)默认情况下,子类调用的是父类的无参构造方法。

17、关于在子类中调用父类构造方法的问题,下述说法正确的是:

(B)

A)子类构造方法一定要调用父类的构造方法;

B)子类构造方法只能在第一条语句调用父类的构造方法;

C)调用父类构造方法的方式是:

父类名(参数表);

D)默认情况下子类的构造方法将调用父类的无参数构造方法。

19、子类中定义的方法与父类方法同名且同形时称父类方法被复盖(也称重写),以下说法正确的是:

(BC)

A)父类对象调用的也是子类的方法;

B)在子类中仍可用super.方法名调用父被复盖的方法;

C)父类中用final修饰的方法不允许被复盖;

D)子类方法必须与父类被重写的方法在访问权限、返回值类型、参数表等方面完全一致。

20、用abstract修饰的类称为抽象类,它们:

(A)

A)只能用以派生新类,不能用以创建对象;

B)只能用以创建对象,不能用以派生新类;

C)既可用以创建对象,也可用以派生新类;

D)既不能用以创建对象,也不可用来派生新类。

21、类中的某个方法是用final修饰的,则该方法:

(C)

A)是虚拟的,没有方法体;B)是最终的,不能被子类继承;

C)不能用被子类同名方法复盖;D)不能用被子类其它方法调用。

22、一个类中,用static修饰的变量称静态变量:

(A)

A)同一时刻,该类的所有对象中该变量值都相同;

B)所有对象中的方法都不能对该变量进行赋值操作;

C)其值不能改变;

D)与实例变量一样,每个对象中的值互相独立。

23、一个类中,用static修饰的方法称静态方法:

(B)

A)该类中其它方法不能调用它;

B)它不能直接调用类中其它不用static修饰的方法;

C)没有用类创建对象之前,类外无法调用该方法;

D)类外调用该方法的方式必须是:

对象名.方法名(实参数据)。

24、定义一个类时,若希望某成员方法调用范围是同一包内所有类,其修饰词应为:

(D)

A)publicB)privateC)protectedD)默认

25、关于接口以下说法正确的是:

(C)

A)接口中的变量必须用publicstaticfinal三个修饰词修饰;

B)接口中的方法必须用publicabstract两个修饰符修饰;

C)一个接口可以继承多个父接口;

D)接口的构造方法名必须为接口名。

26、以下关于接口对象的说法中正确的是:

A

A)接口只能被类实现,不能用来声明对象;

B)接口对象可以用关键词new创建;

C)接口对象可以等于任何类的对象;

D)接口对象只能等于实现该接口的类的对象;

27、若有如下接口A的定义,下列哪些类实现了该接口(C)

interfaceA{

voidmethod1(inti);

voidmethod2(intj);

}

A)classBimplementsA{

voidmethod1(){}

voidmethod2(){}

}

B)classB{

voidmethod1(inti){}

voidmethod2(intj){}

}

C)classBimplementsA{

voidmethod1(inti){}

voidmethod2(intj){}K

}

D)classBimplementsA{

publicvoidmethod1(intx){}

publicvoidmethod2(inty){}

}

28、关于Java中包的概念,以下正确的是:

D

A)包是一些类与接口的集合;

B)Java的包中可以包含子包;

C)包中的类与子包中的类被认为是同一包内;

D)包中的类不能访问子包中非public的类。

30、关于以下程序叙述正确的是:

(A)

classBase{

Base(inti){

System.out.print(“Base”);

}

}

classTestextendsBase{

Test(){

System.out.print(“Test”);

}

publicstaticvoidmain(String[]args){

Testb=newTest();

}

}

A)程序运行出错,因为Base类未定义构造方法;

B)程序运行正常,输出Base;

C)程序运行正常,输出BaseTest;

D)程序运行正常,但无输出。

二、编程练习

【1】覆盖、继承

建立一个汽车Auto类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。

并通过不同的构造方法创建实例。

至少要求:

汽车能够加速,减速,停车。

再定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法

classAuto

{

intluntai;

Stringcolor;

doubleweight;

doublev;

Auto(){

}

Auto(doublev){

}

voidaddV(){

}

voidupV(){

}

voidstop(){

}

}

classCarextendsAuto

{

Stringkongtiao;

StringCD;

voidaddV(){

}

voidupV(){

}

}

【2】抽象类与继承

设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类。

使用继承将这些图形分类,找出能作为基类部分的共同特征(如校准点)和方法(如画法、初始化),并看看这些图形是否能进一步划分为子类。

classPic

{

doubles;

voidhuaFa(){

}

voidgetS(){

}

}

classJuXingextendsPic

{

intheight;

intwidth;

JuXing(intheight,intwidth){

Thisheight=height;

}

voidhuaFa(){

}

voidgetS(){

}

}

classSanJiaoextendsPic

{

inta;

intb;

intc;

voidhuaFa(){

}

voidgetS(){

}

}

classYuanextendsPic

{

intr;

voidhuaFa(){

}

voidgetS(){

}

}

classTuoYuanextendsPic

{

voidhuaFa(){

}

voidgetS(){

}

}

classZhengFangxingextendsJuXing

{

intheight;

intwidth;

voidhuaFa(){

}

voidgetS(){

}

}

【3】抽象类:

创建一个Vehicle类并将它声明为抽象类。

在Vehicle类中声明一个NoOfWheels方法,使它返回一个字符串值。

创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法。

在Car类中,应当显示“四轮车”信息;而在Motorbike类中,应当显示“双轮车”信息。

创建另一个带main方法的类,在该类中创建Car和Motorbike的实例,并在控制台中显示消息。

abstractclassVehicle

{

StringNoOfWheels();

}

classCarextendsVehicle

{

StringNoOfWheels(){

System.out.println("四轮车");

returnnull;

}

XX文库-让每个人平等地提升自我}

classMotorbikeextendsVehicle

{

StringNoOfWheels(){

System.out.println("双轮车");

returnnull;

}

}

publicclassTest

{

publicstaticvoidmain(String[]args){

Vehiclev=newCar();

v.NoOfWheels();

v=newMotorbike();

v.NoOfWheels();

}

}

【4】接口:

创建一个名称为Vehicle的接口,在接口中添加两个带有一个参数的方法start()和stop()。

在两个名称分别为Bike和Bus的类中实现Vehicle接口。

创建一个名称为interfaceDemo的类,在interfaceDemo的main()方法中创建Bike和Bus对象,并访问start()和stop()方法。

publicinterfaceVehicle

{

publicvoidstart();

publicvoidstop();

}

classBikeimplementsVehicle

{

publicvoidstart(){

}

publicvoidstop(){

}

}

classBusimplementsVehicle

{

publicvoidstart(){

}

publicvoidstop(){

}

}

publicclassInterfaceDemo

{

publicstaticvoidmain(String[]args){

Bikeb1=newBike();

Busb2=newBus();

b1.start();

b1.stop();

b2.start();

b2.stop();

}

}

【5】抽象类、继承、接口综合

设计一张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,开门openDoor()和关门closeDoor();然后对门进行另外的功能设计,防盗--theftproof()、防水--waterproof()、防弹--bulletproof()、防火、防锈……

要求:

利用继承、抽象类、接口的知识设计该门

abstractclassDoor

{

abstractpublicvoidopenDoor();

abstractpublicvoidcloseDoor();

}

interfaceDoor1

{

publicvoidtheftproof();

publicvoidwaterproof();

publicvoidbulletproof();

publicvoidfireproof();

}

PublicclassDoor2extendsDoorimplementsDoor1

{

publicvoidopenDoor(){

}

publicvoidcloseDoor(){

}

publicvoidtheftproof(){

}

publicvoidwaterproof(){

}

publicvoidbulletproof(){

}

publicvoidfireproof(){

}

}

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

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1