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

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