Java中抽象类、接口、包的文档练习

。一、选择题

1.        实现接口的类修饰不可以是(   )

A.  Public    B、abstract     C、final     Dvoid

2.        下面程序定义了一个类,关于该类说法正确的是( )

abstract classabstractClass{

……

}

A.  该类能调用new abstractClass(),方法实例化为一个对象

B.  该类不能被继承

C.  该类的方法都不能被重载

D.   以上说法都不对

 

3.        下列说法正确的是(   )

A.  java中包的主要作用是实现跨平台功能

B.  package语句只能放在import语句后面

C.   包(package)由一组类(class)和界面(interface)组成

D.  可以用#include关键词来标明来自其它包中的类;

 

4、下列叙述中,错误的是(   )
 A.父类不能替代子类  B. 子类能够替代父类
 C.子类继承父类       D. 父类包含子类

 

5、关键字( )表明一个对象或变量在初始化后不能修改。

A.extends                                      Bfinal

C.      this                                        D.finalize

 

6、定义类A如下:(重要)

class A{

  int a,b,c;

  public void B(intx,int y, int z){ a=x;b=y;c=z;}

}

下面对方法B的重载哪些是正确的( )。

A.public void A(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}

B.public void B(int x1,int y1, intz1){ a=x1;b=y1;c=z1;}  

Cpublic void B(int x,int y){ a=x;b=y;c=0;}         

D. public B(int x,inty, int z){ a=x;b=y;c=z;}

 

7、已知类关系如下:

Class Employee{}

Class Manager extends Employee{}

Class Director extends Employee{}

则下列语句正确的是:( )。

AEmployee e=new Manager();    

B.Director d=new  Manager();

C.Director d =new Employee ();    

D.Manager m=new Director ();

 

8、接口是Java面向对象的实现机制之一,以下说法正确的是( )。

A.Java支持多重继承,一个类可以实现多个接口

BJava只支持单重继承,一个类可以实现多个接口

C.Java只支持单重继承,一个类可以实现一个接口        

D.Java支持多重继承,但一个类只可以实现一个接口

 

9、什么样的方法不能被重写    。

A.私有(private)方法                        B.最终(final)方法

C.受保护(protected)的方法             D.以上都不对

 

10、下列有关抽象类与接口的叙述中正确的是哪一个    。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法

C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法

D.抽象类中的变量定义时必须初始化,而接口中不是

 

11、从下列程序中你发现了几处错误    。

abstract class A{

      abstract void f(){};

    public abstract void k();

 }

class B extends A{

      protected void f(){    }

void k(){

           System.out.print("Iam subclass");

      }

public static voidmain(String[] args) {

           A a=new A();

           a.f();

       a.k();

      }

}

A.1                   B.2                   C                 D.4

 

12、在JAVA 中,下列说法正确的是:    。

A.一个子类可以有多个父类,一个父类也可以有多个子类

B.一个子类可以有多个父类,但一个父类只可以有一个子类

C.一个子类只可以有一个父类,但一个父类可以有多个子类

D.上述说法都不对

 

13、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类?   

A.class Son implements Father             

B.class Father implements Son

C.class Father extends Son                    

Dclass Son extendsFather

 

14、下列有关抽象类与接口的叙述中正确的是哪一个    。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法

C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法

D.抽象类中的变量定义时必须初始化,而接口中不是

 

15、关于接口的定义和实现,以下描述正确的是    。

A.接口定义的方法只有定义没有实现     

B.接口定义中的变量都必须写明final和static

C.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代码

D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public

 

16.下列关于继承性的描述中,错误的是( )。

A.一个类可以同时生成多个子类  

B.子类继承了父类中除私有的成员以外的其他成员

CJava支持单重继承和多重继承 

D.Java通过接口可使子类使用多个父类的成员

 

17.下列关于抽象类的描述中,错误的是(   )。

A.抽象类是用修饰符abstract说明的  

B.抽象类是不可以定义对象的

C.抽象类是不可以有构造方法的    

D.抽象类通常要有它的子类

 

18.设有如下类的定义:

publicclass parent {

intchange() {}

}

classChild extends Parent { }

则,下面哪些方法可加入Child类中?(   )

Apublic int change(){}           Bstatic int chang(int i){ }

C.private int change(){ }           D.abstractint chang(){ }

 

19.下面叙述中,错误的是(   )。

A.子类继承父类             B.子类能替代父类 

C.父类包含子类             D.父类不能替代子类

20.下列对多态性的描述中,错误的是(  )。

A.Java语言允许方法重载与方法覆盖    

BJava语言允许运算符重载

C.Java语言允许变量覆盖              

D.多态性提高了程序的抽象性和简洁性

 

21.下面关于接口的描述中,错误的是(  )。

A.一个类只允许继承一个接口   

B.定义接口使用的关键字是interface

C.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现

D.接口实际上是由常量和抽象方法构成的特殊类

 

22.以下哪个接口的定义是正确的?(       )

A)interface  B {  void print() {  } ;}

B) abstract  interface  B  {void print() ;}

C)//A1、A2为已定义的接口

abstract  interface B  extends  A1,A2

{abstract  void  print(){ };}

D)interface  B       { void  print();}

 

二、填空题

1.    java程序引入接口的概念,是为了弥补只允许类的___单继承_____的缺憾。

2.    我们在java程序中,把关键字__ extends ______加到方法名称的前面,来实现子类调用父类的方法

3.    java语言通过接口支持__多重____继承,使类继承具有更灵活的扩展性

4.    在Java程序中,通过类的定义只能实现_____重继承,但通过 ___接口 __的定义可以实现多重继承关系。

5.    __接口____只描述系统所提供的服务,而不包含服务的实现细节。

6.    系统规定用__this()____表示当前类的构造方法,用____super__表示直接父类的构造方法,在构造方法中两者只能选其一,且须放在第一条语句。

7.    若子类和父类在同一个包中,则子类继承父类中的__public____、_ protected ____和__默认_成员,将其作为子类的成员,但不能继承父类的___私有(private)___成员。

8.    若子类和父类不在同一个包中,则子类继承了父类中的__public ____和(protected)成员,将其作为子类的成员,但不能继承父类的__默认___和__私有____成员。

9.    ___子类对象___直接赋值给__父类对象____时,子类对象可自动转换为父类对象,__父类对象____赋值给_子类对象_____时,必须将父类对象强制转换为子类对象。

10. Java的多态性主要表现在___方法重载___、_方法覆盖_____和_变量覆盖_____三个方面。

11. 重写后的方法不能比被重写的方法有_更严格_____的访问权限,重写后的方法不能比被重写的方法产生更多的异常。

12. Java语言中,定义子类时,在关键字__extends____后给出父类名。如果没有指出父类,则该类的默认父类为_Object_____。

13. 实现接口中的抽象方法时,必须使用__完全相同____的方法头,并且还要用__public____修饰符。

14. 接口中定义的数据成员均是_常量数据成员_____,所有成员方法均为___抽象方法___方法,且没有___构造___方法。

15. 如果一个类包含一个或多个abstract方法,则它是一个__抽象____类。

16. Java不直接支持多继承,但可以通过__接口____实现多继承。类的继承具有__传递____性。

17. 没有子类的类称为__最终类____,不能被子类重载的方法称为__最终方法____,不能改变值的量称为常量,又称为_最终变量_____。

18. 一个接口可以通过关键字extends来继承_多个_____其他接口。

19. 接口中只能包含__publicstaticfinal__________类型的成员变量和____ publicabstract________类型的成员方法。

 

三、简答题

1.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?

答: 类定义格式: class 类名{ }

类的修饰符: public(公共的)private(私有的)static(静态的)final(最终的)abstract(抽象的)protected(保护类)

 public(公共的)特点:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的

private(私有的)特点:类中成员只可以在定义它的类中被访问

static(静态的)类中成员、方法必须是静态的

final(最终的)特点:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询,字段值不允许被修改

abstract(抽象的)特点:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体为空,该方法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract

protected(保护类)特点:类中成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类必须是该成员所属类的子类。

2.什么是包?如何创建包?如何引用包?

答: 包:包是一组相关的类和接口的集合

创建包: 由包语句package创建

引用包: 开始部分写出相应的引入(import)语句,指出要引入哪些包的哪些类

3.简述接口定义的一般格式。

答:interface 接口名 {(final)数据类型成员名称=常量;abstract 返回值的数据类型方法名(参数….);}

4.什么是接口?如何定义接口?接口与类有何区别?

答:接口:接口是若干完成某一特定功能的没有方法体的方法(抽象方法)和常量的集合。接口是一种特殊的类

定义:interface 接口名 {(final)数据类型成员名称=常量;abstract 返回值的数据类型方法名(参数….);}

区别: 1、接口是某类行为或功能的抽象是一种规范或标准

2、类是对象的封装 

3、一个类只能继承一个类但可实现多个接口

5.一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?

答: 接口实现:class  类名  implements 接口A,接口B{  }  

6.比较接口与抽象类的异同。

答:异:1、接口用implements来实现(派生子类)

抽象类用extends来派生子类

2、抽象类与一般类一样,只能使用单继承

接口实现了多重继承

同: 都是通过对抽象方法的覆盖来定义方法体。 

7.什么是抽象类?什么是抽象方法?各自有什么特点?

答:抽象类:一个类包含一个或多个abstract方法,则它是一个抽象类。(声明方法的存在而不去实现它的类被叫做抽象类)

特点:1、抽象类不可以用new关键字创建对象

2、抽象类中的方法必须由子类复写所有抽象方法后建立子类对象使用

3、抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。

4、抽象类中可以包含构造方法,但是构造方法不能被声明为抽象

5、抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类

6、(abstract不能与privatestaticfinalnative并列修饰同一个方法)

抽象方法:使用abstract修饰的方法是抽象方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现

特点:

1、抽象方法一定在抽象类中

2只包含方法定义,但没有具体实现的方法,需要其子类或者子类的子类来具体实现
3、抽象方法必须被子类的方法所重写

8.什么是最终类?什么是最终变量?什么是最终方法?

答:没有子类的类称为最终类不能被子类重载的方法称为最终方法不能改变值的量称为常量最终变量

 http://blog.sina.com.cn/s/blog_6958c5d60100n066.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章