1. 程式人生 > >Java中抽象類、介面、包的文件練習

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

相關推薦

Java抽象介面的對比分析

abstract class在Java語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。但是,一個類卻可以實現多個interface。 在abstract class中可以有自己的資料成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態的

舉例說明java抽象介面的區別

先定義一個介面: 介面中定義了兩個方法,現在定義一個普通類實現這個介面: 這時候發現報錯了,以前只知道實現介面必須實現其中的方法,卻不知道為什麼要實現。最近才瞭解到: 如果一個類繼承了某個抽象類或者實現了某個介面都需要對其中的抽象方法進行實現,否則該類需要被宣告為

(轉)詳細解析Java抽象介面的區別

原文地址:https://zhuanlan.zhihu.com/p/50989401 在Java語言中, abstract class 和interface 是支援抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向物件能力。abstract class和interface之間在對於

Java抽象介面的具體區別 都分別什麼時候用

學習Java已經一個月的時間了,期間經歷了從入門到放棄再到重拾信心重新奮鬥。今天的學習總結是關於Java中抽象類和介面的區別總結。 一、Java抽象類 1.抽象類必須用 abstract修飾 2.如果一個類有abstract方法,這個類一定是抽象類 3.抽象類不一定有抽象方法 4.抽象類

java 抽象介面的區別

不同點: 1.從語法上來講,抽象類 abstract class,介面中用interface 2.定義中:①變數:抽象類中可以定義變數,介面只有常量 public static final                   ②常量:抽象類中任何方法都可以除了(defa

詳細解析Java抽象介面的區別

  在abstract class方式中,Demo可以有自己的資料成員,也可以有非 abstract的成員方法,而在interface方式的實現中,Demo只能夠有靜態的不能被修改的資料成員(也就是必須是static final 的,不過在interface中一般不定義資料成員),所有的成員方法都是abstr

Java抽象介面區別

抽象類:抽象類是無法例項化的特殊類。所以問題是為什麼我們需要一個不能被例項化的類,抽象類只能是子類(繼承自)。換句話說,它只允許其他類繼承它,但不能例項化。優點是它為所有子類執行特定的層次結構。簡

簡述Java抽象介面,及其兩者區別

在說區別之前,先簡要說一下什麼是抽象類和介面     1.抽象類      用abstract修飾的類叫做抽象類。     在講抽象類之前有必要強調一下abstract修飾符:      1.abstract修飾的類為抽象類,此類不能有物件,(無法對此

Java抽象介面的區別?

抽象類: 抽象類必須在類前加上abstract表示這是一個抽象類,抽象類的抽象方法不需要實現,他只是一種宣告,所以也就無法建立抽象類的物件。一個類繼承抽象類必須實現抽象類中的抽象方法,如果不實現這個抽象方法,那麼這個類就必須是抽象的。 介面: 介面是Java中的interface,介面中

說一下Java抽象介面存在的意義與價值

首先簡單的介紹一下抽象類: 定義是很簡單的,我們這裡不寫官方的語言,我自己看著都煩,我們就用白話介紹,抽象類本質是一個類,沒問題,那麼類裡面一般都是有方法的,方法包括方法名和方法體,這是常識對不對,那麼什麼是抽象類呢?如果一個類裡面有一種方法只有方法名卻沒有方法體,這樣的類

面試常見題---------java抽象介面的區別

    含有abstract修飾符的class 即為抽象類,abstract類不能建立例項物件,含有abstract的方法的類必須定義為abstract class ,abstract class 裡

Java抽象介面有構造方法嗎?

1.時間:2017-07-05 10:25:44 YuanMxy 2.問題描述:Java中抽象類和介面中有構造方法嗎? 3.問題解答: (1)Java中抽象類和介面中有構造方法嗎? ①在介面中 不可以有構造方法 在接口裡寫入構造方法時,

JAVA抽象介面總結

區別1:抽象類體現繼承關係,一個類只能単繼承。介面體現實現關係,一個類可以多實現。區別2:抽象類中可以定義非抽象方法和抽象方法,子類繼承後可以直接使用非抽象方法。介面的方法都            是抽象的,必須由子類去實現。介面中的成員都有固定的修飾符。區別3:抽象類有構造

java抽象介面之間的區別和關係

首先抽象類歸根結底還是屬於類,對於抽象方法,是隻能存在於抽象類中的,我們無法再一個非抽象的類中宣告一個抽象方法,其次抽象方法只需要宣告,並不需要事先。當我們要寫一個抽象類的時候只需要在類的前面宣告為abstract即可了。同時抽象類是無法被例項化的,而抽象類的存在就是為了被

java抽象介面的區別

抽象類:抽象類更多的是用來定義一個很多東西的本質,即他是不是,如果我們可以宣告一個抽象類annimal,然後新建一個cat類去繼承

一篇文章讓你徹底理解java抽象介面

目錄 1、我所理解的抽象類 2、我所理解的介面 3、抽象類和介面本質區別 相信大家都有這種感覺:抽象類與介面這兩者有太多相似的地方,又有太多不同的地方。往往這二者可以讓初學者摸不著頭腦,無論是在

Java抽象介面的介紹及二者間的區別

  介面(Interface)和抽象類(Abstract Class)是支援抽象類定義的兩種機制。 一、抽象類   在Java中被abstract關鍵字修飾的類稱為抽象類,被abstract關鍵字修飾的方法稱為抽象方法,抽象方法只有方法的宣告,沒有方法體。抽象類是用來捕捉子類的通用特性的 。它不能被例項化,只

java properties 讀取k-v配置

.class void tput iter 讀取配置文件 絕對路徑 getprop stream 源配置 properties 讀取的配置文件key和values都是string 類型 package com.bjsxt.others.pro; import java

Java抽象介面練習

。一、選擇題 1.        實現介面的類修飾不可以是(   ) A.  Public    B、abstract     C、final     D、void 2.        下面程式定義了一個類,關於該類說法正確的是( ) abstract classabst

Java物件和例項的關係Java資料封裝Java繼承和多型Java抽象介面Java靜態欄位和方法Java和作用域Java的classpath和jarJava核心

Java物件和例項的關係: 面向物件程式設計(Object-Oriented Programming),是對現實世界建立計算機模型的一種方法。 class是物件的模板,它定義瞭如何建立例項,class的名字就是資料型別。一個class裡可以有多個欄位(field),欄位用