JAVA基礎(chǔ) 第4章繼承與多態(tài)練習(xí)題_第1頁
JAVA基礎(chǔ) 第4章繼承與多態(tài)練習(xí)題_第2頁
JAVA基礎(chǔ) 第4章繼承與多態(tài)練習(xí)題_第3頁
JAVA基礎(chǔ) 第4章繼承與多態(tài)練習(xí)題_第4頁
JAVA基礎(chǔ) 第4章繼承與多態(tài)練習(xí)題_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第4章 繼承與多態(tài)一 選擇題1. 編譯和運行以下兩文件結(jié)果是( D )。/文件P1.javapackage MyPackage;class P1 void afancymethod() System.out.println(What a fancy method); /文件 P2.javapackage YourPackage;import MyPackage.*;public class P2 extends P1 public static void main(String argv)P2 p2 = new P2();p2.afancymethod(); A兩個均通過編譯,P2運行時輸出

2、What a fancy methodB沒一個通過編譯C兩個均通過編譯,但P2運行時出錯DP1 通過編譯,但P2出現(xiàn)編譯錯誤2下列程序運行的結(jié)果是( A )。package a;package b;public class Dpublic static void main(String args) System.out.println(_,今天心情不錯!);A出現(xiàn)編譯錯誤B_,今天心情不錯!C通過編譯,運行時出錯D以上都不對3Java的核心類庫中哪個包,Java系統(tǒng)能自動引入( B )。Ajava.io Bjava.langC Djava.util4下列程序運行結(jié)果是( A )

3、。 private class Base Base() int i = 100; System.out.println(i); public class Pri extends Base static int i = 200; public static void main(String argv) Pri p = new Pri(); System.out.println(i); A編譯錯誤 B200 C100 200 D1005下列程序運行結(jié)果是( C )。 class Base Base() int i = 100; System.out.println(i); public class

4、 Pri extends Base static int i = 200; public static void main(String argv) Pri p = new Pri(); System.out.println(i); A編譯錯誤 B200 C100 200 D1006如何定義一個不能有子類的類Key( B )。Aclass Key Bfinal class Key Cpublic class Key Dclass Key final int i; 7哪個選項可以做為以下方法的覆蓋方法( A )。public void add(int a) Apublic void add(in

5、t b) Bvoid add(int a) Cpublic int add(int a) Dpublic void add(float a) 8在子類構(gòu)造方法的哪個地方可以調(diào)用超類的構(gòu)造方法( B )。 A任何地方B構(gòu)造方法的第一條語句 C構(gòu)造方法的最后一條語句 D不能在子類構(gòu)造方法中調(diào)用超類的構(gòu)造方法9下列程序的運行結(jié)果是( C )。 public class Test public static void test() this.print(); public static void print() System.out.println(Test); public static void

6、main(String args ) test(); A輸出TestB無輸出結(jié)果C類編譯錯誤,指示不能在static上下文中使用thisD以上都不對10設(shè)有如下代碼:1. class Example2. String str;3. Example()4. str= example;5. 6. Example(String s)7. str=s;8. 9. 10. class Demo extends Example11. 12. public class Test13. public void f () 14. Example ex = new Example(Good);15. Demo d

7、 = new Demo(Good);16. 17. 以下哪行將導(dǎo)致錯誤( D )。 A第3行 B第6行C第10行D第15行 11在Java中,如下的修飾符不是訪問控制修飾符( A )。Astatic Bpublic Cprotected Dprivate12試完成下述程序片段( D )。public class Pointint x,y;public Point(int x,int y)( )=x; ( )=y; . APoint.x Point.y B無解Cx1 y1Dthis.x this.y13在JAVA 中( C )。A一個子類可以有多個父類,一個父類也可以有多個子類B一個子類可以有多

8、個父類,但一個父類只可以有一個子類C一個子類只可以有一個父類,但一個父類可以有多個子類D上述說法都不對14什么是在子類中創(chuàng)建一個和父類具有一樣特征的方法,特征包括方法名字,參數(shù)個數(shù),參數(shù)類型和方法返回值類型( A )。A覆蓋(overloading) B重載(overriding) C繼承(inheritance) Dnone15哪個關(guān)鍵詞在子類中用來訪問與父類中一樣的方法( A )。Asuper Bthis Cstatic D以上沒有16哪個關(guān)鍵詞用來引用當前類的對象( B )。Asuper Bthis Cstatic D以上沒有17哪個修飾符定義的方法和變量只在定義它們的類中可見,而在其他

9、的任何類中它們都不可見( C )。Aprotected Bpublic Cprivate Dnone of the above18 1. class Person 2. public void printValue(int i, int j) /. 3. public void printValue(int i)/. 4. 5. public class Teacher extends Person 6. public void printValue() /. 7. public void printValue(int i) /.8. public static void main(Strin

10、g args)9. Person t = new Teacher();10. t.printValue(10);11. 12. 第10行將調(diào)用的會是哪個方法( D )。Aon line 2 Bon line 3 Con line 6 Don line 719以下代碼運行結(jié)果是( C )。class Base class Sub extends Base class Sub2 extends Base class CEx public static void main(String argv) Base b = new Base(); Sub s = (Sub) b; A編譯通過B編譯錯誤 C運

11、行異常 D以上都不對20設(shè)有如下類定義: class BaseWidget String name=BaseWidget; void speak()System.out.println(I am a +name); class TypeAWidget extends BaseWidget TypeAWidget()name=TypeA; 以下哪段代碼將正確編譯和執(zhí)行( B )。AObject a=new BaseWidget(); a.speak();BBaseWidget b=new TypeAWidget(); b.speak();CTypeAWidget c=new BaseWidget

12、(); c.speak();D以上都不對21設(shè)有文件Derived.java中代碼如下.public class Base extends Object String objType; public Base() objType=I am a Base type; public class Derived extends Base public Derived() objType=I am a Derived type; public static void main(String args) Derived D=new Derived(); 編譯程序?qū)⒊霈F(xiàn)何問題( B )。A將創(chuàng)建 Base

13、.class 和 Derived.class 兩個文件B編譯程序?qū)⒅甘镜?行有問題C編譯程序?qū)⒃诘?行出錯D以上都不對22哪種訪問組合可放在第3行aMethod前和第8行的aMethod前( C )。 1. class SuperDuper 2. 3. void aMethod() 4. 5. 6. class Sub extends SuperDuper 7. 8. void aMethod() 9. Aline 3: public; line 8: privateBline 3: protected; line 8: privateCline 3: private; line 8: pro

14、tected Dline 3: public; line 8: protected23以下類: 1. public class Base 2. public void method(int i) 3.System.out.print( Value is + i); 4. 5. 1. class Sub extends Base 2. public void method (int j) 3. System.out.print( This value is + j); 4. 5. public void method(String s) 6. System.out.print(I was pas

15、sed + s); 7. 8. public static void mainString args) 9. Base bl = new Base(); 10. Base b2 = new Sub(); 11. bl . method (5); 12. b2 . method (6); 13. 14. Sub類的main方法的執(zhí)行結(jié)果為( C )。AValue is 5Value is 6BThis value is 5This value is 6CValue is 5This value is 6DThis value is 5Value is 624下列程序的運行的結(jié)果是( A )。cl

16、ass parent void test() System.out.print(parent);public class child extends parent void test() super.test(); System.out.print( child);public static void main(String args) child x=new child(); x.test();Aparent child Bchild Cparent Dchild parent 25下列程序的運行的結(jié)果是( D )。class parentparent(String s)s=parent;

17、void test() System.out.print(parent);public class child extends parent void test() super.test(); System.out.print( child);public static void main(String args) child x=new child(); x.test();Aparent child Bchild Cparent D編譯錯誤26下列程序的運行的結(jié)果是( D )。class parentparent(String s)s=parent; void test() System.o

18、ut.print(parent); public class child extends parent child(String s)s=child;void test() super.test(); System.out.print( child);public static void main(String args) child x=new child(); x.test();Aparent child Bchild Cparent D編譯錯誤27看下列程序package a;class parentprivate int i=20;protected int j=30;public i

19、nt k=40;int h=50;class child extends parent void f()在子類child的方法f()中不可以操作的變量是( A )。Ai Bj Ck Dh28看下列程序package a;public class parentprivate int i=20;protected int j=30;public int k=40;int h=50;package b;import a.parent;class child extends parent void f() 在子類child的方法f(A)中不可以操作的變量是( D )。Ai Bj Ck Dh29看下列程

20、序package a;class parentprivate int i=20;protected int j=30;public int k=40;int h=50;class child1 extends parent class child2 extends child1void f()在子類child2的方法f()中不可以操作的變量是( A )。Ai Bj Ck Dh30如下類的聲明: class A 則類A的父類是( C )。A沒有父類 B本身 CObject DLang31下列程序的運行結(jié)果是(C )。class parentint i=20;int j=30;void f()Sy

21、stem.out.print( +i);class child extends parent int i=30;int k=40;void f()System.out.print( +i);void g()System.out.print( +k);public static void main(String args)parent x=new child();System.out.print(x.i);x.f();child x1=(child)x;System.out.print( +x1.i);x1.f();A30 30 30 30 B20 20 20 20 C20 30 30 30 D

22、都不對32什么樣的方法不能被重寫( B )。A私有方法B最終方法(final方法)C受保護的方法D都不對33如果一個成員變量聲明時必須賦給初值,而且不能再發(fā)生變化,那么這個成員變量是( B )。A私有變量B最終變量(常量)C受保護的變量D都不對34關(guān)于重載和重寫的敘述正確的是( D)。A重載是多態(tài)的一種,而重寫不是B重載是子類中定義的方法和父類中某個方法相同C重寫是一個類中多個同名的方法,并且方法的參數(shù)不同D重寫方法時不允許降低方法的訪問權(quán)限二編程題1 創(chuàng)建2個包:a和b。在包a中編寫一個公共類A,類A中有:2個public double類型的屬性c、d;一個構(gòu)造方法public A(doub

23、le x,double y)對c,d進行初始化;還有一個方法public double add()返回c與d的和。在包b中編寫一個主類B,在類B的main方法中創(chuàng)建類A的對象e,并用對象e調(diào)用方法add求2個數(shù)的和。1package a;public class A public double c,d;public A(double x, double y)c = x;d = y;public double add()return c+d;package b;import a.A;class B public static void main(String args) A e = new A(

24、1,2) System.out.println(兩個數(shù)之和: + e.add();2. 編寫一個類A,該類創(chuàng)建的對象可以調(diào)用方法f輸出小寫的英文字母表。然后再編寫一個A類的子類B,要求子類B必須繼承A類的方法f(不允許重寫),子類B創(chuàng)建的對象不僅可以調(diào)用方法f輸出小寫的英文字母表,而且可以調(diào)用子類新增的方法g輸出大寫的英文字母表。最后編寫主類C,在主類的main方法中測試類A與類B。2class A void f()System.out.println(A輸出小寫的英文字母表:);char c;for(c=a;c=z;c+) System.out.print( +c);System.out.p

25、rintln();class B extends Avoid g()char c;System.out.println(B輸出大寫的英文字母表:);for(c=A; c=Z; c+)System.out.print( +c); System.out.println();class Cpublic static void main(String args)A a = new A();B b=new B();a.f();b.f();b.g();3編寫一個Java應(yīng)用程序,該程序包括3個類: A類、B類和主類E。其中類B是類A的子類,在子類B中新增了成員變量和成員方法,并且隱藏了父類A的成員變量和重寫了父類A的成員方法。在主類E的main方法中,創(chuàng)建類B的對象并賦給父類A的對象a,使用上轉(zhuǎn)型對象a來測試上轉(zhuǎn)型對象的一些特性。3class A int i=1;int j=10;void a()System.out.println(a of A);void b()System.out.println(b of A);class

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論