。一、選擇題
1. 實現接口的類修飾不可以是( )
A. Public B、abstract C、final D、void
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 B.final
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;}
C.public 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{}
則下列語句正確的是:( )。
A.Employee e=new Manager();
B.Director d=new Manager();
C.Director d =new Employee ();
D.Manager m=new Director ();
8、接口是Java面向對象的實現機制之一,以下說法正確的是( )。
A.Java支持多重繼承,一個類可以實現多個接口
B.Java只支持單重繼承,一個類可以實現多個接口
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.3 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
D.class Son extendsFather
14、下列有關抽象類與接口的敘述中正確的是哪一個 。
A.抽象類中必須有抽象方法,接口中也必須有抽象方法
B.抽象類中可以有非抽象方法,接口中也可以有非抽象方法
C.含有抽象方法的類必須是抽象類,接口中的方法必須是抽象方法
D.抽象類中的變量定義時必須初始化,而接口中不是
15、關於接口的定義和實現,以下描述正確的是 。
A.接口定義的方法只有定義沒有實現
B.接口定義中的變量都必須寫明final和static
C.如果一個接口由多個類來實現,則這些類在實現該接口中的方法時採用統一的代碼
D.如果一個類實現接口,則必須實現該接口中的所有方法,但方法未必申明爲public
16.下列關於繼承性的描述中,錯誤的是( )。
A.一個類可以同時生成多個子類
B.子類繼承了父類中除私有的成員以外的其他成員
C.Java支持單重繼承和多重繼承
D.Java通過接口可使子類使用多個父類的成員
17.下列關於抽象類的描述中,錯誤的是( )。
A.抽象類是用修飾符abstract說明的
B.抽象類是不可以定義對象的
C.抽象類是不可以有構造方法的
D.抽象類通常要有它的子類
18.設有如下類的定義:
publicclass parent {
intchange() {}
}
classChild extends Parent { }
則,下面哪些方法可加入Child類中?( )
A.public int change(){} B.static int chang(int i){ }
C.private int change(){ } D.abstractint chang(){ }
19.下面敘述中,錯誤的是( )。
A.子類繼承父類 B.子類能替代父類
C.父類包含子類 D.父類不能替代子類
20.下列對多態性的描述中,錯誤的是( )。
A.Java語言允許方法重載與方法覆蓋
B.Java語言允許運算符重載
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. 接口中只能包含__public、static、final__________類型的成員變量和____ public 、abstract________類型的成員方法。
三、簡答題
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不能與private、static、final、native並列修飾同一個方法)
抽象方法:使用abstract修飾的方法是抽象方法,這種方法只聲明返回的數據類型、方法名稱和所需的參數,沒有方法體,也就是說抽象方法只需要聲明而不需要實現
特點:
1、抽象方法一定在抽象類中
2、只包含方法定義,但沒有具體實現的方法,需要其子類或者子類的子類來具體實現
3、抽象方法必須被子類的方法所重寫
8.什麼是最終類?什麼是最終變量?什麼是最終方法?
答:沒有子類的類稱爲最終類、不能被子類重載的方法稱爲最終方法、不能改變值的量稱爲常量最終變量
http://blog.sina.com.cn/s/blog_6958c5d60100n066.html