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

下載本文檔

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

文檔簡(jiǎn)介

1、第4章 繼承與多態(tài)一 選擇題1. 編譯和運(yùn)行以下兩文件結(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兩個(gè)均通過(guò)編譯,P2運(yùn)行時(shí)輸出

2、What a fancy methodB沒(méi)一個(gè)通過(guò)編譯C兩個(gè)均通過(guò)編譯,但P2運(yùn)行時(shí)出錯(cuò)DP1 通過(guò)編譯,但P2出現(xiàn)編譯錯(cuò)誤2下列程序運(yùn)行的結(jié)果是( A )。package a;package b;public class Dpublic static void main(String args) System.out.println(_,今天心情不錯(cuò)!);A出現(xiàn)編譯錯(cuò)誤B_,今天心情不錯(cuò)!C通過(guò)編譯,運(yùn)行時(shí)出錯(cuò)D以上都不對(duì)3Java的核心類(lèi)庫(kù)中哪個(gè)包,Java系統(tǒng)能自動(dòng)引入( B )。Ajava.io Bjava.langC Djava.util4下列程序運(yùn)行結(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編譯錯(cuò)誤 B200 C100 200 D1005下列程序運(yùn)行結(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編譯錯(cuò)誤 B200 C100 200 D1006如何定義一個(gè)不能有子類(lèi)的類(lèi)Key( B )。Aclass Key Bfinal class Key Cpublic class Key Dclass Key final int i; 7哪個(gè)選項(xiàng)可以做為以下方法的覆蓋方法( 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在子類(lèi)構(gòu)造方法的哪個(gè)地方可以調(diào)用超類(lèi)的構(gòu)造方法( B )。 A任何地方B構(gòu)造方法的第一條語(yǔ)句 C構(gòu)造方法的最后一條語(yǔ)句 D不能在子類(lèi)構(gòu)造方法中調(diào)用超類(lèi)的構(gòu)造方法9下列程序的運(yùn)行結(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無(wú)輸出結(jié)果C類(lèi)編譯錯(cuò)誤,指示不能在static上下文中使用thisD以上都不對(duì)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)致錯(cuò)誤( D )。 A第3行 B第6行C第10行D第15行 11在Java中,如下的修飾符不是訪問(wèn)控制修飾符( A )。Astatic Bpublic Cprotected Dprivate12試完成下述程序片段( D )。public class Pointint x,y;public Point(int x,int y)( )=x; ( )=y; . APoint.x Point.y B無(wú)解Cx1 y1Dthis.x this.y13在JAVA 中( C )。A一個(gè)子類(lèi)可以有多個(gè)父類(lèi),一個(gè)父類(lèi)也可以有多個(gè)子類(lèi)B一個(gè)子類(lèi)可以有多

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

9、的任何類(lèi)中它們都不可見(jiàn)( 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)用的會(huì)是哪個(gè)方法( D )。Aon line 2 Bon line 3 Con line 6 Don line 719以下代碼運(yùn)行結(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編譯通過(guò)B編譯錯(cuò)誤 C運(yùn)

11、行異常 D以上都不對(duì)20設(shè)有如下類(lèi)定義: 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以上都不對(duì)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)何問(wèn)題( B )。A將創(chuàng)建 Base

13、.class 和 Derived.class 兩個(gè)文件B編譯程序?qū)⒅甘镜?行有問(wèn)題C編譯程序?qū)⒃诘?行出錯(cuò)D以上都不對(duì)22哪種訪問(wèn)組合可放在第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以下類(lèi): 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類(lèi)的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下列程序的運(yùn)行的結(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下列程序的運(yùn)行的結(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編譯錯(cuò)誤26下列程序的運(yùn)行的結(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編譯錯(cuò)誤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()在子類(lèi)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() 在子類(lèi)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()在子類(lèi)child2的方法f()中不可以操作的變量是( A )。Ai Bj Ck Dh30如下類(lèi)的聲明: class A 則類(lèi)A的父類(lèi)是( C )。A沒(méi)有父類(lèi) B本身 CObject DLang31下列程序的運(yùn)行結(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、都不對(duì)32什么樣的方法不能被重寫(xiě)( B )。A私有方法B最終方法(final方法)C受保護(hù)的方法D都不對(duì)33如果一個(gè)成員變量聲明時(shí)必須賦給初值,而且不能再發(fā)生變化,那么這個(gè)成員變量是( B )。A私有變量B最終變量(常量)C受保護(hù)的變量D都不對(duì)34關(guān)于重載和重寫(xiě)的敘述正確的是( D)。A重載是多態(tài)的一種,而重寫(xiě)不是B重載是子類(lèi)中定義的方法和父類(lèi)中某個(gè)方法相同C重寫(xiě)是一個(gè)類(lèi)中多個(gè)同名的方法,并且方法的參數(shù)不同D重寫(xiě)方法時(shí)不允許降低方法的訪問(wèn)權(quán)限二編程題1 創(chuàng)建2個(gè)包:a和b。在包a中編寫(xiě)一個(gè)公共類(lèi)A,類(lèi)A中有:2個(gè)public double類(lèi)型的屬性c、d;一個(gè)構(gòu)造方法public A(doub

23、le x,double y)對(duì)c,d進(jìn)行初始化;還有一個(gè)方法public double add()返回c與d的和。在包b中編寫(xiě)一個(gè)主類(lèi)B,在類(lèi)B的main方法中創(chuàng)建類(lèi)A的對(duì)象e,并用對(duì)象e調(diào)用方法add求2個(gè)數(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(兩個(gè)數(shù)之和: + e.add();2. 編寫(xiě)一個(gè)類(lèi)A,該類(lèi)創(chuàng)建的對(duì)象可以調(diào)用方法f輸出小寫(xiě)的英文字母表。然后再編寫(xiě)一個(gè)A類(lèi)的子類(lèi)B,要求子類(lèi)B必須繼承A類(lèi)的方法f(不允許重寫(xiě)),子類(lèi)B創(chuàng)建的對(duì)象不僅可以調(diào)用方法f輸出小寫(xiě)的英文字母表,而且可以調(diào)用子類(lèi)新增的方法g輸出大寫(xiě)的英文字母表。最后編寫(xiě)主類(lèi)C,在主類(lèi)的main方法中測(cè)試類(lèi)A與類(lèi)B。2class A void f()System.out.println(A輸出小寫(xiě)的英文字母表:);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輸出大寫(xiě)的英文字母表:);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編寫(xiě)一個(gè)Java應(yīng)用程序,該程序包括3個(gè)類(lèi): A類(lèi)、B類(lèi)和主類(lèi)E。其中類(lèi)B是類(lèi)A的子類(lèi),在子類(lèi)B中新增了成員變量和成員方法,并且隱藏了父類(lèi)A的成員變量和重寫(xiě)了父類(lèi)A的成員方法。在主類(lèi)E的main方法中,創(chuàng)建類(lèi)B的對(duì)象并賦給父類(lèi)A的對(duì)象a,使用上轉(zhuǎn)型對(duì)象a來(lái)測(cè)試上轉(zhuǎn)型對(duì)象的一些特性。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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論