JAVA復習題(繼承)_第1頁
JAVA復習題(繼承)_第2頁
JAVA復習題(繼承)_第3頁
JAVA復習題(繼承)_第4頁
JAVA復習題(繼承)_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、類的繼承習題一、 選擇題1. Java語言的類間的繼承關系是( B )。 A) 多重的 B) 單重的 C) 線程的 D) 不能繼承 2. 以下關于Java語言繼承的說法正確的是( C )。 A)Java中的類可以有多個直接父類 B)抽象類不能有子類 C)Java中的接口支持多繼承 D)最終類可以作為其它類的父類3. 現有兩個類A、B,以下描述中表示B繼承自A的是(D)。 A) class A extends B B) class B implements A C) class A implements B D) class B extends A4. 下列選項中,用于定義接口的關鍵字是( A)

2、。 A)interface B) implements C) abstract D) class5. 下列選項中,用于實現接口的關鍵字是( B)。 A)interface B) implements C) abstract D) class6. Java語言的類間的繼承的關鍵字是( B )。 A) implements B) extends C) class D) public 7. 以下關于Java語言繼承的說法錯誤的是( A )。 A)Java中的類可以有多個直接父類 B)抽象類可以有子類 C)Java中的接口支持多繼承 D)最終類不可以作為其它類的父類8. 現有兩個類M、N,以下描述中表

3、示N繼承自M的是(D)。 A) class M extends N B) class N implements M C) class M implements N D) class N extends M9. 現有類A和接口,以下描述中表示類實現接口的語句是(A)。 A) class implements B B) class B implements C) class extends B D) class B extends 10. 下列選項中,定義抽象類的關鍵字是( C)。 A)interface B) implements C) abstract D) class11. 下列選項中,定義

4、最終類的關鍵字是(D)。A)interface B) implements C) abstract D) final12. 下列選項中,哪個是java語言所有類的父類(C)A)String B) Vector C) Object D) KeyEvent13. java語言中,用于判斷某個對象是否是某個類的實例的運算符是(A)A)instanceof B) + C) isinstance D) &&14. 下列選項中,表示數據或方法可以被同一包中的任何類或它的子類訪問,即使子類在不同的包中也可以的修飾符是(B)A)public B) protected C) private D)

5、 final15. 下列選項中,表示數據或方法只能被本類訪問的修飾符是(C)A)public B) protected C) private D) final16. 下列選項中,接口中方法的默認可見性修飾符是(A)A)public B) protected C) private D) final17. 下列選項中,表示終極方法的修飾符是:(B)A)interface B) final C) abstract D) implements18. 下列選項中,定義接口MyInterface的語句正確的是:(A)A)interface MyInterface B) implements MyInter

6、face C) class MyInterface D) implements interface My 19. 如果子類中的方法mymethod()覆蓋了父類中的方法mymethod(),假設父類方法頭部定義如下:void mymethod(int a),則子類方法的定義不合法的是:(C)A) public void mymethod(int a) B) protected void mymethod(int a)C) private void mymethod(int a) D) void mymethod(int a)二、 填空題1. 如果子類中的某個變量的變量名與它的父類中的某個變量完

7、全一樣,則稱子類中的這個變量_了父類的同名變量。(隱藏)2. 屬性的隱藏是指子類重新定義從父類繼承來的_。(同名變量或屬性)3. 如果子類中的某個方法的名字、返回值類型和_與它的父類中的某個方法完全一樣,則稱子類中的這個方法覆蓋了父類的同名方法。(參數列表) 4. Java 僅支持類間的_重繼承。(單重)5. 抽象方法只有方法頭,沒有_。 (方法體)6. Java 語言的接口是特殊的類,其中包含_常量和_方法。(static(靜態) ; abstract(抽象)7. 接口中所有屬性均為_、_和_的。 (public、static、final)8. 如果接口中定義了一個方法methodA(),一

8、個屬性attA,那么一個類ClassA要實現這個接口的話,就必須實現其中的_方法。(methodA()9.一個類如果實現一個接口,那么它就必須實現接口中定義的所有方法,否則該類就必須定義成_的。(抽象的) 10. 如果子類中的某個方法的名字、_和參數列表與它的父類中的某個方法完全一樣,則稱子類中的這個方法覆蓋了父類的同名方法。(返回值類型) 11. Java 僅支持類間的單重繼承,接口可以彌補這個缺陷,支持_重繼承(多重)12. 在方法頭用abstract修飾符進行修飾的方法叫做_方法。(抽象)13.Java語言中用于表示類間繼承的關鍵字是_。(extends)14. 接口中所有方法均為_和_

9、的。 (public、abstract)15. Java語言中,表示一個類不能再被繼承的關鍵字是_。(final)16. Java語言中,表示一個類A繼承自父類B,并實現接口C的語句是_。 (class A extends B implements C)。17. 如果子類中的方法compute()覆蓋了父類中的方法compute(),假設父類的compute()方法頭部有可見性修飾符public,則methodS()的可見性修飾符必須是_。(public)三、 程序閱讀題1.現有類說明如下,請回答問題:public class A String str1=" Hello! t&quo

10、t; String str2=" How are you? " public String toString( ) return str1+str2; public class B extends A String str1="bb,Bill." public String toString( ) return super.str1+str1; 問題:1)類A和類B是什么關系?(繼承關系)2)類A和類B都定義了str1屬性和方法toString( ), 這種現象分別稱為什么?(屬性的隱藏;方法的覆蓋)3)若a是類A的對象,則a.toString( )的返

11、回值是什么? (Hello!How are you?)4)若b是類B的對象,則b.toString( )的返回值是什么?(Hello,Bill.)2.現有一個類定義如下,請回答問題: class Employee String name; int age; double wage; static int No=0; Employee(String a1,int a2,double a3) name=a1; age=a2; wage=a3; No+; 在使用該類時,已使用下面語句生成了該類的對象:Employee e1,e2;e1=new Employee("王勁",26,6

12、300);e2=new Employee("張山",30,3800);問題:1),e2.age,e2.wage的值各是什么?(張山;30;3800.0)2)生成對象e1、e2后,e1.No值為多少?能否通過類名做前綴引用屬性No?(2; 能)3.閱讀程序,回答問題。public class InheritTest1 public static void main (String args) A aa; B bb; aa=new A( ); bb=new B( ); aa.show( ); bb.show(); class A int a=1; double d

13、=2.0; void show( ) System.out.println("Class A: "+"ta="+a +"td="+d); class B extends A float a=3.0f; String d="Java program." int b=4; void show( ) System.out.println("Class A: "+"ta="+super.a +"td="+super.d); super.show( ); Syste

14、m.out.println("Class B: "+"ta="+a +"td="+d+"tb="+b); 問題:1)這是哪一類java程序?(java應用程序) 2)類A和類B是什么關系?(類B是類A的子類)3)按程序輸出的格式寫出程序運行后的結果.(程序運行結果如下:Class A: a=1 d=2.0Class A: a=1 d=2.0Class A: a=1 d=2.0Class B: a=3.0 d=Java program. b=4 )4.現有類說明如下,請回答問題:class A int x=10; i

15、nt getA()return x;class B extends A int x=100; int getB()return x;問題:1)類B是否能繼承類A的屬性x?(能) 2)若b是類B的對象,則b.getB()的返回值是什么?(100) 3)若b是類B的對象,則b.getA()的返回值是什么?(10)4)類A和類B都定義了x屬性,這種現象稱為什么?(屬性的隱藏)5.有如下源程序,請回答問題:class A String s="class A" class B extends A String s="class B" public class Ty

16、peConvertpublic static void main(String args)B b1,b2=new B();A a1,a2;a1=(A)b2;a2=b2;System.out.println(a1.s);System.out.println(a2.s);b1=(B)a1;System.out.println(b1.s);System.out.println(b2.s);問題: 該程序的四行輸出各是什么?(class Aclass Aclass Bclass B)6.現有類說明如下,請回答問題:public class A int x=888; String str="I

17、 like: " public String toString() return str+x; public class B extends A String x="java" public String toString() return str+x+" and "+super.x; 問題:1)類A和類B是什么關系?(類B是類A的子類) 2)類A和類B都定義了x屬性和方法toString(),這種現象分別稱為什么?(屬性的隱藏和方法的覆蓋) 3)若a是類A的對象,則a.toString( )的返回值是什么?(I like: 888)4)若b是

18、類B的對象,則b.toString( )的返回值是什么? (I like: java and 888)7.運行類C的輸出結果是什么?class Apublic A()System.out.println(“The default constructor of A is invoked”);class B extends Apublic B()public class Cpublic static void main(String args)B b = new B();8.閱讀下列程序寫出輸出結果:class A String s="class A" void show()

19、System.out.println(s); class B extends A String s="class B" void show() System.out.println(s);public class TypeConvertpublic static void main(String args)B b1;B b2=new B();A a1,a2;a1=(A)b2;a2=b2;System.out.println(a1.s); a1.show();System.out.println(a2.s); a2.show();b1=(B)a1;System.out.pri

20、ntln(b1.s); b1.show();System.out.println(b2.s); b2.show();答案:class Aclass Bclass Aclass Bclass Bclass Bclass Bclass B四、 程序填空題1.下面是一個類的定義,完成程序填空。(Youwrite this.x=x;)public class Youwrite int x;_( ) x=0; Youwrite ( int x) _; 2.下面是定義一個接口ITF的程序,完成程序填空。 (interface abstract )public _ ITF public static fin

21、al double PI=Math.PI; public _ double area(double a, double b);3.下面是定義一個接口A的程序,完成程序填空。(final ”;” )public interface A public static _ double PI=3.14159; public abstract double area(double a, double b)_五、 編程題簡單類的繼承:1.定義一個類,描述一個矩形,包含有長、寬兩種屬性,和計算面積方法。編寫一個類,繼承自矩形類,同時該類描述長方體,具有長、寬、高屬性,和計算體積的方法。編寫一個測試類,對以上

22、兩個類進行測試,創建一個長方體,定義其長、寬、高,輸出其底面積和體積。public class TestExtendspublic static void main(String args)LiFangTi f=new LiFangTi();f.length=2;f.width=3;f.height=7;System.out.println("立方體的底面積為:"+f.findArea()+"立方體的體積為:"+f.findVolume();class JuXingint length;int width;int findArea()return len

23、gth*width;class LiFangTi extends JuXingint height;int findVolume()return findArea()*height;3. 定義一個Person類,它包括的屬性有“姓名”和“性別”,為Person類派生出一個子類Student類,為Student子類添加兩個屬性年齡和成績等級(用A,B,C,D,E表示),在子類中打印出學生的姓名、性別、年齡及成績等級。class Personprotected String name;protected String sex;Person(String name,String sex)this.n

24、ame=name;this.sex=sex;public String toString()String s=new String();s=name+"t"+sex;return s;class Student extends Personprotected int age;protected char grade;Student(String name,String sex,int age,char grade)super(name,sex);this.age=age;this.grade=grade;void print()String s=new String();s

25、=super.toString();s=s+"t"+age+"t"+grade;System.out.println(s);public class TestPpublic static void main(String args)Student st1=new Student("zhangfei","male",23,'E');Student st2=new Student("liubei","male",25,'A');System.out

26、.println("name"+"tset"+"tage"+"tgrade");st1.print();st2.print();4.定義一個類Rectangle代表矩形,其中包括計算面積的方法。再定義一個它的子類Square代表正方形,其中也包含計算面積的方法。編寫一程序,測試新建子類對象的屬性和方法。class Rectanglefloat length;float width;Rectangle(float len,float wh)length=len;width=wh;float getArea()retu

27、rn length*width;class Square extends Rectanglefloat length;Square(float len)super(len,len);length=len;float getArea()return super.getArea();public class TestRectanglepublic static void main(String args)Square sq=new Square(5.2f);System.out.println("side is "+sq.length+",area is "

28、+sq.getArea();類與對象習題一、選擇題1 定義類頭時,不可能用到的關鍵字是( B)。 A) class B)private C)extends D)public2.下列類定義中,不正確的是(C)。A) class x . B) class x extends y . C) static class x implements y1,y2 . D) public class x extends Applet . 3.下列類頭定義中,錯誤的是( A)。 A)public x extends y . B) public class x extends y . C)class x exten

29、ds y implements y1 . D)class x .4.設 A為已定義的類名,下列聲明A類的對象a的語句中正確的是( D)。 A) float A a; B) public A a=A( ); C) A a=new int( ); D) static A a=new A( );5.設 A為已定義的類名,下列聲明A類的對象a的語句中正確的是(A)。 A) public A a=new A( ); B) public A a=A( ); C) A a=new class( ); D) a A;6.設 X 、Y 均為已定義的類名,下列聲明類X的對象x1的語句中正確的是(C)。 A) pu

30、blic X x1= new Y( ); B) X x1= X ( ); C) X x1=new X( ); D) int X x1;7. 設X 、Y為已定義的類名,下列聲明X類的對象x1的語句中正確的是(A)。 A) static X x1; B) public X x1=new X(int 123); C) Y x1; D) X x1= X( );8.通過類MyClass中的不含參數的構造方法,生成該類的一個對象obj,可通過以下語句實現: _。 (MyClass obj=new MyClass( );)9. 設i , j為類X中定義的int型變量名,下列X類的構造方法中不正確的是( A)

31、。 A) void X(int k ) i=k; B) X(int k ) i=k; C) X(int m, int n ) i=m; j=n; D) X( )i=0;j=0; 10. 有一個類A,以下為其構造方法的聲明,其中正確的是( A )。 A)public A(int x). B)static A(int x). C)public a(int x). D)void A(int x).11. 有一個類A,以下為其構造方法的聲明,其中正確的是( B )。 A)void A(int x). B)A(int x). C)a(int x). D)void a(int x).12. 設i、j、k為

32、類X中定義的int型變量名,下列類X的構造方法中不正確的是( B )。 A) X( int m) . B) void X( int m) . C) X( int m, int n) . D) X( int h,int m,int n) . 13. 設i , j為類X中定義的double型變量名,下列X類的構造方法中不正確的是(A )。 A) double X(double k ) i=k; return i; C) X( )i=6;j=8; B) X(double m, double n ) i=m; j=n; D) X(double k ) i=k; 14. 設a , b為類MyClass中

33、定義的int型變量名,下列MyClass類的構造方法中不正確的是(A)。double MyClass(double k ) a=k; return a; MyClass( )a=6;b=8; MyClass (double m, double n ) a=m; b=n; MyClass (double k ) a=k; 15 定義類頭時,不可能用到的關鍵字是(A)。 A)protected B) class C)extends D)public16.下列類頭定義中,錯誤的是(A)。 A)public TestClass extends y . B) public class TestClass

34、 extends y . C)class TestClass extends y implements y1 . class TestClass .17.設 B為已定義的類名,下列聲明B類的對象b的語句中正確的是(D)。 A) float B b; B) public B b=B( ); C) B b=new int( ); D) static B b=new B( );18.設 ClassA為已定義的類名,下列聲明ClassA類的對象ca的語句中正確的是(A)。 A)public ClassA ca=new ClassA( ); B) public ClassA ca=ClassA( );

35、C) ClassA ca=new class( ); D) ca ClassA;19.設 A 、B 均為已定義的類名,下列聲明類A的對象a1的語句中正確的是(C)。 A) public A a1= new B( ); B) A a1= A ( ); C) A a1=new A( ); D) int A a1;20. 設A 、B為已定義的類名,下列聲明A類的對象a1的語句中正確的是(A)。 A) static A a1; B) public A a1=new A(int 123); C) B a1; D) A a1= A( );21.通過類A中的不含參數的構造方法,生成該類的一個對象a,可通過以

36、下語句實現: _。 (A a=new A( );)22. 設m , n為類A中定義的int型變量名,下列A類的構造方法中不正確的是( A)。 A) void A(int k ) m=k; B) A(int k ) m=k; C) A(int m, int n )m=i; n=j; D) A( )m=0;n=0; 23. 有一個類Person,以下為其構造方法的聲明,其中正確的是( A )。 A)public Person (int x). B)static Person (int x). C)public a(int x). D)void Person (int x).24. 有一個類Stud

37、ent,以下為其構造方法的聲明,其中正確的是( B )。 A)void Student (int x). B) Student (int x). C)s(int x). D)void s(int x).25. 設i、j、k為類School中定義的int型變量名,下列類School的構造方法中不正確的是( B )。 A) School ( int m) . B) void School ( int m) . C) School ( int m, int n) . D) School ( int h,int m,int n) . 二、填空題1.下面是一個類的定義,請完成程序填空。(Myclass

38、int j)public class _ int x, y; Myclass ( int i, _) / 構造方法 x=i; y=j; 2. 下面是一個類的定義,請將其補充完整。(Student String)class _ String name;int age;Student( _ s, int i) name=s; age=i; 3.下面是一個類的定義,請將其補充完整。(myclass static)class _ / 定義名為myclass的類 _ int var=666; static int getvar() return var; 4.下面程序的功能是通過調用方法max()求給定

39、的三個數的最大值,請將其補充完整。(max(i1,i2,i3) static)public class Class1 public static void main( String args ) int i1=1234,i2=456,i3=-987; int MaxValue; MaxValue=_; System.out.println("三個數的最大值:"+MaxValue); public _ int max(int x,int y,int z) int temp1,max_value; temp1=x>y?x:y; max_value=temp1>z?t

40、emp1:z; return max_value; 5.下面是一個類的定義,請將其補充完整。(class static)_ A String s; _ int a=666; A(String s1) s=s1; static int geta( ) return a; 6.下面是一個類的定義,請完成程序填空。(Room int n)public class _ int a, b; Room ( int m, _) / 構造方法 a=m; b=n; 7. 下面是一個類的定義,請將其補充完整。(class String)_ Teacher String name;int age;Teacher (

41、 _ s, int i) name=s; age=i; 8.下面是一個類的定義,請將其補充完整。(Desk static)class _ / 定義名為Desk的類 _ int var=666; static int getvar() return var; 9.下面程序的功能是通過調用方法max()求給定的二個整數的最大值,請將其補充完整。(max(a1,a2) int)public class Class1 public static void main( String args ) int a1=1234,a2=456; int MaxValue; MaxValue=_; System.o

42、ut.println("二個數的最大值:"+MaxValue); public static _ max(int x,int y) int max_value; max_value =x>y?x:y; return max_value; 10.下面是一個類的定義,請將其補充完整。(class static)_ Bank String s; _ int a=666; Bank(String s1) s=s1; static int geta( ) return a; 三、程序閱讀題1.下面是一個類的定義,根據題目要求回答以下問題.class Bprivate int x

43、; private char y;public B(int i,char j)x=i; y=j;public void show()System.out.println("x="+x+" y="+y);public void methodC(int x)this.x=this.x+x; y+;show();(1)定義類B的一個對象b,將類中的變量x初始化為10、變量y初始化為A,請寫出相應的語句。(B b=new B(10,A);)(2)若在(1)問基礎上有方法調用語句:b.show();則輸出如何?(x=10; y=A)(3)若在(1)問基礎上增加語句

44、: b.methodC(1); 則輸出為何?(x=11; y=B)(x=11; y=B)2.閱讀程序,回答問題。 public class Test52 String static str1="Hello, Java world! t" String static str2="Hello, students! " public static void main(String args) System.out.print(str1); System.out.println(str2); 問題:1)這是哪種形式的 java 程序 ?(java應用程序) 2)

45、程序的輸出是什么? (Hello, Java world!Hello, students! )3. 寫出下列程序的輸出結果public class Testpublic static void main(String args)Count myCount = new Count();int times = 0;for(int i=0;i<100;i+)increment(myCount , times);System.out.println(“count is” + myCount.count);System.out.println(“time is”+ times);public st

46、atic void increment(Count c , int times)c.count+;times+;class Countpublic int count;Count(int c)count =c;Count()count =1;答案:count 101times 04.寫出下列程序的輸出結果:public class Testpublic static void main(String args)Cirecle circle1 = new Circle(1);Cirecle circle2 = new Circle(2);/ Attempt to swap circle 1 wi

47、th circle2System.out.println(“Before swap:circle1 = ”+circle1.radius+”circle2 = ”+circle2.radius);swap(circle1,circle2);System.out.println(“After swap: circle1 = ”+circle1.radius+”circle2 = ”+circle2.radius);public static void swap(Circle x , Circle y)System.out.println(“Before swap: x = ”+x.radius+”y = ”+y.radius);Circle temp = x;x = y;y = temp;System.out.println(“Before swap: x = ”+x.radius+”y = ”+y.radius);答案:5.閱讀下面程序,回答問題:public class Fooint i;stat

溫馨提示

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

評論

0/150

提交評論